交换深度后删除MovieClip

时间:2011-12-14 06:31:54

标签: flash actionscript-2

我在 ActionScript 2 中有一些代码,类似于以下代码段(Item是MovieClip):

_root.createEmptyMovieClip("Temp",_root.getNextHighestDepth());
_root.Item.swapDepths(_root.Temp);  
_root.Temp.removeMovieClip(); // This doesn't work ! 

我认为问题很清楚。交换深度后我无法移除Temp(否则可以正常工作)。

我也尝试了以下(但无济于事):

depth = Item.getDepth();
_root.createEmptyMovieClip("Temp",_root.getNextHighestDepth());
_root.Item.swapDepths(_root.Temp);  
_root.getInstanceAtDepth(depth).removeMovieClip(); // Doesn't work ! 

有关如何摆脱Temp的任何想法?

2 个答案:

答案 0 :(得分:1)

我找出了Temp MovieClip不朽背后隐藏的原因。 与其交换的MovieClip Item是在时间轴中手动创建的。因此,在交换后,Temp位于zone of depths范围内,Flash不支持动态删除符号。

如果我在TempItem1 = Item.duplicateMovieClip("Item1", someDepth);之间交换了深度,那么removeClip()就可以了!

答案 1 :(得分:0)

请尝试以下代码:

_root.createEmptyMovieClip("Temp",_root.getNextHighestDepth());
_root.Item.swapDepths(_root.Temp);  
removeMovieClip(_root.Temp);

如果使用ActionScript代码创建动态影片剪辑。然后你必须使用removeMovieClip(XXXXXX);函数而不是XXXXXX.removeMoveiClip();

注意: - XXXXXX是MoveiClip的实例引用,它是使用ActionScript 2.0代码创建的运行时。

原因:“removeMovieClip()仅适用于动态创建的动画片段”