AS3 setChildIndex 到前面

Posted

技术标签:

【中文标题】AS3 setChildIndex 到前面【英文标题】:AS3 setChildIndex to front 【发布时间】:2012-07-29 02:10:25 【问题描述】:

有没有办法将特定的movieClip 发送到舞台上所有其他movieClip 的前面?

我知道 setChildIndex,但我无法找到动态计算顶部位置的方法。

【问题讨论】:

【参考方案1】:

您可以将setChildIndex()numChildren 一起使用。

setChildIndex(childClip, numChildren - 1);

【讨论】:

【参考方案2】:

您不需要使用 setChildIndex。 addChild 在所有剪辑的顶部发送孩子。 您可能会认为 addChild 会双重添加您的 MC,但它不会,第二次它只会更新它的子索引。

【讨论】:

我喜欢这种简单的解决方案。这是非常真实的。它只会更新索引。【参考方案3】:

默认情况下,flash 将影片剪辑添加到显示列表的顶部,因此您可以重复将子项添加到容器中。

stage.addChild(bottom);
stage.addChild(top);
// top is now on bottom.

stage.addChild(bottom);
// bottom is now on top.

【讨论】:

0 是最低级别,因为每个孩子都结束了。 是的,那没用。这特别使我的电影剪辑到了后面。【参考方案4】:

movieclip(mc) 被添加到画布上,

canvas.setChildIndex(mc, 0);

画布添加到舞台上,

stage.setChildIndex(canvas, 0);

【讨论】:

【参考方案5】:
/* Bring Any Clicked Object to the Front
Clicking on any symbol on the Stage moves it in front of all other instances.
*/

// This code makes all symbol instances on stage clickable by making them listen for the CLICK event.
for (var fl_ChildIndex:int = 0;
    fl_ChildIndex < this.numChildren;
    fl_ChildIndex++)

    this.getChildAt(fl_ChildIndex).addEventListener(MouseEvent.CLICK, fl_ClickToBringToFront);


// This is the function that moves the clicked object to the front of the display list

function fl_ClickToBringToFront(event:MouseEvent):void

    this.addChild(event.currentTarget as DisplayObject);

来自 Adob​​e Flash Professional 代码片段。

【讨论】:

我并不怀疑这可行,但与 Florent 给出的“setChildIndex(childClip, numChildren - 1);”解决方案相比,这听起来过于复杂。

以上是关于AS3 setChildIndex 到前面的主要内容,如果未能解决你的问题,请参考以下文章

FLash:尝试使用setChildIndex和TweenLite创建按钮rollOver效果时出错

复制 Xml as3 失败

ActionScript 3 AS3带到前面

as3.0如何获取字符串中的某个符号前面和后面的字符串

将剪辑移动到最高深度

将 Java 移植到 AS3