you might find that using MOUSE_MOVE is a little heavy on the processor as
it can fire multiple times, even within the same frame

it's probably better to use Event.ENTER_FRAME and check for the mouseX and
mouseY and while you're at it, you might as well use the same listener to
move the card rather than startDrag()/stopDrag()

don't know if it would help, though

a

On Tue, Dec 23, 2008 at 4:49 PM, Joel Stransky <[email protected]>wrote:

> Why not just include the detection logic inside the handlers you already
> have?
>
> On Tue, Dec 23, 2008 at 9:52 AM, Alexander Farber <
> [email protected]> wrote:
>
> > 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
> >
>
>
>
> --
> --Joel Stransky
> stranskydesign.com
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to