由于某种原因,Flash正在复制我的MovieClip实例。它们是主时间轴上的一系列三个剪辑,主时间轴上没有动画,但剪辑内部有一些。
在时间轴上向后{{1}}后,三个剪辑gotoAndStop
,pic1
和pic2
变为重复。嗯,实际上,它似乎创建了这三个剪辑的全新实例。在重复之后,新剪辑似乎“覆盖”旧剪辑,因为引用它们总是指新的剪辑,但它们仍然存在于舞台上。
我运行了以下测试,看看会发生什么:
pic3
我得到了令人费解的输出:
for (var i:int = 0; i < this.numChildren; i++) {
trace(i + ": " + this.getChildAt(i).name + ": " + this.getChildAt(i));
}
是的,那些是具有相同实例名称的MovieClip集。以前有没有遇到过这个?地球上到底会发生什么?
修改: 我发现它似乎只发生在我使用ActionScript重新订购MovieClip的时候。它似乎认为MC已经出现故障,然后重新添加它们。这个问题有解决办法吗?
答案 0 :(得分:2)
如果您通过IDE将MovieClip添加到舞台,则不应删除或通过ActionScript将它们放回舞台上。更一般地说,您不应该使用ActionScript在显示列表中更改其顺序。否则Flash会为您提供所删除的MovieClip的所有权,然后在您返回该帧时再将其重新放回(创建一个新的)。
如果您需要重新排序剪辑,请尝试直接在时间轴上,在IDE中执行此操作。如果您的动画需要更复杂的东西,那么解决方案可能是在ActionScript中完成所有操作(始终是最灵活的解决方案,也是最不具备意外的解决方案)。