Actionscript 3 Actionscript中的Movieclip堆叠

Actionscript 3 Actionscript中的Movieclip堆叠,actionscript-3,movieclip,Actionscript 3,Movieclip,我正在构建一个游戏,它的界面是第一个加载到屏幕上的项目之一。声音按钮,暂停和所有的位- 在游戏中-所有庄园的东西都会被动态地添加和移除到舞台上。因此,我的界面在我的游戏场景后面 我如何确保电影剪辑始终处于最佳状态 我是否可以覆盖文档类的addChild,并且每次添加新的子对象时,我都会将接口重新标记到顶部?查看addChildAt,它允许您指定应该添加新对象的索引 一个好的策略是将所有界面元素保存在一个父Sprite/MovieClip中,将所有游戏资产保存在另一个中。(界面一在顶部)您可以使

我正在构建一个游戏,它的界面是第一个加载到屏幕上的项目之一。声音按钮,暂停和所有的位-

在游戏中-所有庄园的东西都会被动态地添加和移除到舞台上。因此,我的界面在我的游戏场景后面

我如何确保电影剪辑始终处于最佳状态


我是否可以覆盖文档类的addChild,并且每次添加新的子对象时,我都会将接口重新标记到顶部?

查看addChildAt,它允许您指定应该添加新对象的索引


一个好的策略是将所有界面元素保存在一个父Sprite/MovieClip中,将所有游戏资产保存在另一个中。(界面一在顶部)

您可以使用setChildIndex重新排列已包含在MovieClip或Sprite中的对象。例如,如果有一个名为container的对象,其中包含一个红球、蓝球和许多其他球对象,则可以使用以下命令确保红球位于其他所有对象的后面:

container.setChildIndex(redBall, 0);
同样,您可以使用以下方法确保蓝球显示在所有其他内容之前:

container.setChildIndex(blueBall, container.numChildren-1);
addChildAt
将为您排序,以便将子对象直接添加到正确的位置,而setChildIndex将允许您重新定位已放置的对象。希望有帮助


debu

根据你们的建议,我做了这个,显然,如果你在屏幕上添加了一个对象,它只需重新索引到顶部。这个看起来可以吗

private var topLevelChildrenArray:Array = [];

public function addTopLevelChild(child:DisplayObject):DisplayObject
{
    topLevelChildrenArray.push(child)
    return this.addChildAt( child, this.numChildren - 1 );  
}

override public function addChild(child:DisplayObject):DisplayObject
{
    this.addChildAt(child, this.numChildren);

    for each(var topChild:DisplayObject in topLevelChildrenArray)
    {
        super.addChild(topChild);
    }

    return child
}

不错的一个,我确实看了,也看到了它是如何工作的,但我不确定它是如何组合在一起的。+1是关于将所有接口元素保留在一个父Sprite/MovieClip中的注释。。这是正确的方法。没问题,很高兴它有帮助:)