Как создать класс Drag and Drop в сценарии действия с функциями управления, оставаясь при этом универсальным c? - PullRequest
0 голосов
/ 15 марта 2020

Давайте go прямо к вопросу, который я хочу сделать в Adobe Animation и на языке Action Script, пожалуйста, помогите мне написать код

Правила игры: каждый цветной кружок попадет в свой цветной прямоугольник и круг исчезнет, ​​и изменится на предопределенный прямоугольник и проследится «предупреждение», или выполните какое-либо действие для другого попадания прямоугольника или попадания черных прямоугольников

Schemati c изображение загружено, чтобы лучше уточнить, чего я хочу, нет проблема, если вы измените все это мой код

Внимание: я новичок, попробуйте с полными объяснениями

Проблемы, которые у меня есть:

1- Я не знаю, как предупредить, если круг сталкивается с нерелевантными цветами или черными прямоугольниками.

image

2- Я хочу предупредить в момент столкновения, но код I например, при задержке записи красный круг исчезает точно при попадании в красный прямоугольник (это задерживается в моем коде).

my fla code:
redCirc_mc.target = redRec_mc;
yelCirc_mc.target = yelRec_mc;
greenCirc_mc.target = greenRec_mc;

my class code:
package  {
    import flash.events.MouseEvent
    import flash.display.MovieClip
    import fl.transitions.Fade;


        public class DragDrop extends MovieClip {

            public var target:MovieClip;
            private var originalX:Number;
            private var originalY:Number;

            public function DragDrop(){

                originalX=this.x;
                originalY=this.y;
                this.addEventListener(MouseEvent.MOUSE_DOWN,drag);}

            private function drag(event:MouseEvent):void{
                this.startDrag();
                this.parent.addChild(this);
                this.addEventListener(MouseEvent.MOUSE_UP,drop);
                }

            private function drop(event:MouseEvent):void{
                this.stopDrag();
                this.removeEventListener(MouseEvent.MOUSE_UP,drop);


                if (this.hitTestObject(target)){
                    trace("hit!");
                    this.visible=false;
                    }

                else{
                    this.x=originalX;
                    this.y=originalY;

                    }
                }
        }
    }
...