Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何在操作脚本中创建一个拖放类,该类具有控件特性,同时仍然是通用的?_Actionscript 3_Cross Platform_Game Development_Adobe Animate - Fatal编程技术网

Actionscript 3 如何在操作脚本中创建一个拖放类,该类具有控件特性,同时仍然是通用的?

Actionscript 3 如何在操作脚本中创建一个拖放类,该类具有控件特性,同时仍然是通用的?,actionscript-3,cross-platform,game-development,adobe-animate,Actionscript 3,Cross Platform,Game Development,Adobe Animate,让我们直接进入问题 我想用Adobe动画和whit动作脚本语言来做这个,请帮我写代码 游戏规则: 每一个彩色圆圈都会击中它的彩色矩形,圆圈将消失,并且将更改为预定义的矩形并跟踪“警告”,或者对其他矩形击中或黑色矩形击中执行一些操作 上传示意图,以更好地阐明我想要什么 如果你把它全部改成我的代码就没问题了 注意:我是初学者,请尝试完整的解释 我面临的挑战: 1-我不知道如果圆圈与不相关的颜色或黑色矩形碰撞,如何发出警告 2-我想在冲突发生时发出警告,但我编写的代码会延迟,例如,红色圆圈正好在碰到

让我们直接进入问题 我想用Adobe动画和whit动作脚本语言来做这个,请帮我写代码

游戏规则: 每一个彩色圆圈都会击中它的彩色矩形,圆圈将消失,并且将更改为预定义的矩形并跟踪“警告”,或者对其他矩形击中或黑色矩形击中执行一些操作

上传示意图,以更好地阐明我想要什么 如果你把它全部改成我的代码就没问题了

注意:我是初学者,请尝试完整的解释

我面临的挑战:

1-我不知道如果圆圈与不相关的颜色或黑色矩形碰撞,如何发出警告

2-我想在冲突发生时发出警告,但我编写的代码会延迟,例如,红色圆圈正好在碰到红色矩形时消失(这在我的代码中是延迟的)


一次提出的问题太多了,它们并不像看上去那么简单。我建议用几个简单易懂的步骤来做。步№1:了解为什么hitTestObject可能会让您失败,并在没有实际冲突发生时返回true:非常感谢您的时间和关注///在这里问一个问题或在新的上下文中问一个问题?我如何从这样一个问题开始:当每个圆圈击中时,我如何将它分成两个事件:1。当它碰到自己的矩形2时。当处理其他矩形时,一次只走一步,而现在你正试图跳得太远。首先,创建一个合适的逻辑来检测两个形状之间的冲突。从字面上说,这样做,你可以设计两个形状在任何组合和所说的逻辑产生的唯一结果是真或假,所以你可以说:是的,这正是我想要的。另外,请从矩形开始,这样您就可以先使用hitTestObject(…)。
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;

                    }
                }
        }
    }