Hello,

I have 2 classes: PlayingCard and PlayingTable.

The PlayingCard listens on MOUSE_UP, DOWN
and MOVE to call startDrag() and stopDrag().

I do not want to introduce custom events,
so I try to subscribe the PlayingTable to
MOUSE_MOVE and MOUSE_UP events
of each PlayingCard, so that the table can:

1) Detect that a PlayingCard is being
    dragged to a right spot (depending on
    the current phase of the game - for ex.
    from the dealer to the player), so that
    it can change color (like glow in green)

2) Detect that the mouse has been
    released after dragging a PlayingCard
    and check if the move been valid.

My problem is that when I try to dispatch
the MOUSE_MOVE events, then the
PlayingCard receives it again and again
and gives me the runtime error:

Error #2094: Event dispatch recursion overflow.
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at Card/handleMouseMove()

Has anybody please a solution for
this probably often occuring problem?

Thank you
Alex

PS: Here is my current troublesome code:

        public function PlayingCard() {
               ......
               addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
        }
        
        private function handleMouseDown(event:MouseEvent):void {
                addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
                addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove);
                .......
                startDrag();
        }

        private function handleMouseUp(event:MouseEvent):void {
                removeEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
                removeEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove);
                ......
                stopDrag();
        }

        private function handleMouseMove(event:MouseEvent):void {
                // XXX trying to reuse the MOUSE_MOVE event
                // XXX and to dispatch it to PlayingTable - fails :-(

                dispatchEvent(event);
        }
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to