Good day,

I have a class representing draggable playing cards:

        public dynamic class Card extends Sprite {
                public function Card() {
                        ........
                        addEventListener(MouseEvent.MOUSE_DOWN, handleDown);
                        addEventListener(MouseEvent.MOUSE_UP, handleUp);
                        //addEventListener(MouseEvent.MOUSE_OUT, handleOut);
                }
                private function handleDown(event:MouseEvent):void {
                        dispatchEvent(new CardEvent(CardEvent.CLICKED, this));
                        filters = SHADOW;
                        scaleX = scaleY = 1.2;
                        startDrag();
                        addEventListener(MouseEvent.MOUSE_MOVE, handleDrag);
                        // here some code to store the original card coordinates
                }
                private function handleUp(event:MouseEvent):void {
                        filters = null;
                        scaleX = scaleY = 1;
                        stopDrag();
                        removeEventListener(MouseEvent.MOUSE_MOVE, handleDrag);
                        dispatchEvent(new CardEvent(CardEvent.PLAYED, this));
                        // restore the original card coordinates, i.e.
put it back
                }

My problem is: I have 3 player avatars + some GUI at the top.

And when a card is being dragged underneath them and
the mouse button released, then the card object won't
receive the MOUSE_UP event and thus will stay "up" -
i.e. stay big (scaleX/Y = 1.2) and have shadow filter.

Does anybody have a solution for this probably frequent
occuring problem? I've tried adding this method:

                private function handleOut(event:MouseEvent):void {
                        // if this card is being dragged, release it
                        if (hasEventListener(MouseEvent.MOUSE_MOVE))
                                handleUp(event);
                }

But this will make the cards behaviour even more annoying
(cards will jump back whenever they touch the GUI...)

I just want to do something, so that handleUp() for
the dragged card is called just anywhere at the stage

Regards
Alex
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to