当movieclip到达特定帧时停止

时间:2012-01-27 08:05:50

标签: flash-cs5

我创建了一个有120帧的动画片段。

现在我在舞台上使用了这个动画片段的多个实例。

我希望每个动画片段在到达特定帧时停止。 (所有实例的帧号都不同)

我尝试了以下代码

if (char_1.currentFrame == 36) {char_1.stop();}

但它不起作用。我试图追踪当前帧,它总是显示1。

trace(char_1.currentFrame);

有任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

// root
var allMCs:Dictionary = new Dictionary();
allMCs[char_1] = 32;  // frame on which to stop char_1
allMCs[char_2] = 12;  // frame on which to stop char_2
allMCs[char_3] = 47;  // frame on which to stop char_3
// ... add more

// add ENTER_FRAME listener
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onEnterFrame(evt:Event):void
{
    // loop through all MCs and check their frame
    for (var mc:MovieClip in allMCs)
    {
        trace(mc + " frame: " + mc.currentFrame);
        if (mc.currentFrame == allMCs[mc])
        {
            mc.stop();
        }
    }
}

如果跟踪仍然表明currentFrame为1,请务必在您使用的每个MC中执行play();