AS2:removeMovieClip()不起作用

时间:2012-03-20 10:18:33

标签: flash actionscript actionscript-2

所以我复制了舞台上的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;

然而它表现出相同的行为。

4 个答案:

答案 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,而不是手动