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 将movieclip置于一切之上_Actionscript 3 - Fatal编程技术网

Actionscript 3 将movieclip置于一切之上

Actionscript 3 将movieclip置于一切之上,actionscript-3,Actionscript 3,我在舞台上有一堆movieclips,其中一些嵌套在其他movieclips中,当我开始拖动它时,我希望有一个movieclips放在舞台上其他所有东西的上面。有人知道如何在父对象等之上获得嵌套的movieclip吗?假设容器是您的父movieclip,它有许多子对象,那么现在您的target和currentTarget属性取决于侦听器连接的对象以及您嵌套了多少movieclip。在我的例子中,容器是有两个或更多孩子的父母movieClip Container.addEventListener(

我在舞台上有一堆movieclips,其中一些嵌套在其他movieclips中,当我开始拖动它时,我希望有一个movieclips放在舞台上其他所有东西的上面。有人知道如何在父对象等之上获得嵌套的movieclip吗?

假设容器是您的父movieclip,它有许多子对象,那么现在您的target和currentTarget属性取决于侦听器连接的对象以及您嵌套了多少movieclip。在我的例子中,容器是有两个或更多孩子的父母movieClip

Container.addEventListener(MouseEvent.MOUSE_DOWN, pickUp); 

public function pickUp(param1:MouseEvent) : void
{
    var objectToDrag =  param1.target; 
    Container.setChildIndex(param1.target,Container.numChildren-1);
    objectToDrag.startDrag(true);
}

在舞台上最重要的是:

stage.addChild(target);
来自AS3文档的警告:

命令stage.addChild可能会导致发布的SWF出现问题 文件,包括安全问题以及与其他加载的SWF的冲突 文件夹。Flash运行时实例中只有一个阶段,不是吗 无论您将多少SWF文件加载到运行时。所以一般来说,, 不应直接将对象添加到舞台。唯一的 阶段应包含的对象是根对象。创建一个 DisplayObjectContainer以包含显示器上的所有项目 列表然后,如有必要,将该DisplayObjectContainer实例添加到 舞台


你可以有一个顶层&一个底层,当你想在所有其他的东西上面添加一个子元素时,只需将子元素添加到顶层。这样,您就不需要知道父位置是什么,只需将该层保持在顶部即可实现特定目的

var topLayer:Sprite = new Sprite(); var bottomLayer:Sprite = new Sprite(); var childMc:MovieClip; // the mc you want to have on top //somewhere in your code... childMc.addEventListener(MouseEvent.MOUSE_DOWN , childMcMouseDownListener ); addChild( bottomLayer ); addChild( topLayer ); //add everything to the bottom layer //leave the topLayer empty until you add the child mc //add the following code in your MouseDown Listener function childMcMouseDownListener(event:MouseEvent ):void { topLayer.addChild( event.currentTarget ); }