所以我复制了舞台上的MovieClip
并通过IDE创建,如下所示:
duplicateMovieClip(timeData, "nextTimeData", timeData._parent.getNextHighestDepth());
这很有效,但当我去删除MovieClip
时,就像这样:
trace(timeData);
removeMovieClip(timeData);
trace(timeData);
trace(nextTimeData);
在trace(timeData)
_level0.timeData
输出removeMovieClip(timeData)
为什么会这样?
编辑:根据答案和Flash文档,在IDE中创建的MovieClip的深度为负,removeMovieClip()
无法正确删除具有负深度的MovieClip。
所以我现在从库中附加timeData
,如下所示:
attachMovie("timeData", "timeData", this.getNextHighestDepth());
timeData._x = 530;
timeData._y = 492.5;
然而它表现出相同的行为。
答案 0 :(得分:3)
是的,有办法:
IDE中的单击MovieClip实例,并将此代码放在AS面板中:
onClipEvent(load)
{
this.swapDepths(0);
this.removeMovieClip();
}
能够在需要具有适当深度的实例上使用removeMovieClip()
,这就是您需要首先设置深度的原因。砰,魔术:)
当然您可以使用此代码并对其进行更改,以便您可以从其他实例或时间轴控制此movieClip。
干杯, 罗布
答案 1 :(得分:1)
听起来您使用IDE(Flash环境)创建了动画片段。
注意:默认情况下,使用IDE创建的Movieclips实际上具有负深度。
removeMovieClip只会删除正深度的剪辑。
如果要删除使用IDE定位的动画片段,则需要先使用swapDepths将动画片段置于“正”深度。在那之后,你应该能够删除它没问题。
答案 2 :(得分:0)
您无法使用removeMovieClip()
从IDE中删除手动创建的MovieClip:
删除使用duplicateMovieClip(),MovieClip.duplicateMovieClip(),MovieClip.createEmptyMovieClip()或MovieClip.attachMovie()创建的影片剪辑实例。
来自http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001349.html
您可以通过这种方式删除nextTimeData
,但除非您也是从AS创建的,否则永远无法移除timeData
。
答案 3 :(得分:-1)
在AS2中,通过IDE创建的对象无法通过removeMovieClip删除。这在官方as2帮助中说。但是可以使用此功能删除重复的一个。你最好使用代码从库中获取timeData,而不是手动