Flash 交换深度后移除电影剪辑

Flash 交换深度后移除电影剪辑,flash,actionscript-2,Flash,Actionscript 2,我在ActionScript 2中有一些代码类似于下面的片段(Item是一个MovieClip): 我认为问题很清楚。交换深度后,我无法删除Temp(否则可以正常工作) 我还尝试了以下方法(但无效): 关于如何摆脱Temp有什么想法吗 请使用以下给定代码进行尝试: _root.createEmptyMovieClip("Temp",_root.getNextHighestDepth()); _root.Item.swapDepths(_root.Temp); removeMovieClip(

我在ActionScript 2中有一些代码类似于下面的片段(
Item
是一个MovieClip):

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

我还尝试了以下方法(但无效):


关于如何摆脱
Temp
有什么想法吗

请使用以下给定代码进行尝试:

_root.createEmptyMovieClip("Temp",_root.getNextHighestDepth());
_root.Item.swapDepths(_root.Temp);  
removeMovieClip(_root.Temp);
如果您正在使用ActionScript代码创建动态movieclip。然后您必须使用
removeMovieClip(XXXXXX)函数而不是
XXXXXX.removeMoveiClip()

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


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

我找到了
Temp
MovieClip不朽背后隐藏的原因。 与之交换的MovieClip
是在时间线中手动创建的。因此,在交换后,
Temp
在闪存不支持动态删除符号的范围内


如果我在
Temp
Item1=Item.duplicateMovieClip(“Item1”,someDepth)之间交换深度
removeClip()
会工作的

正如我所说,问题发生在swapDepths()函数之后。如果没有这一行,XXXXXX.removeMovieClip()工作得很好。是的,但在交换之后,它在AVM1中出现了显示列表问题。所以它会发生。因此,您必须使用removeMovieClip(_root.Temp);在交换之前,它将工作。您必须学习数组、ActionScript2.0中的显示列表和MovieClip子对象管理。我已经更新了实际问题,作为上面的答案。事实上,在问这个问题之前,我已经试过了所有可能的removeMovieClip()形式!
depth = Item.getDepth();
_root.createEmptyMovieClip("Temp",_root.getNextHighestDepth());
_root.Item.swapDepths(_root.Temp);  
_root.getInstanceAtDepth(depth).removeMovieClip(); // Doesn't work ! 
_root.createEmptyMovieClip("Temp",_root.getNextHighestDepth());
_root.Item.swapDepths(_root.Temp);  
removeMovieClip(_root.Temp);