如何只播放一次影片剪辑?

时间:2013-03-09 05:12:45

标签: actionscript-3

我已经对这个网站做了一些研究,并找出了我想要做的大部分内容。我点击一个块。块移动。完成后,它会播放另一个影片剪辑。问题是它循环第二个影片剪辑。我找到了一个处理此问题的查询,但无法弄清楚如何使其与下面的代码一起使用。一旦if语句为true,它就会继续播放剪辑(应该如此),但我不知道如何让它只播放一次。任何建议都非常赞赏。

block_1.stop();
block_1.addEventListener(MouseEvent.CLICK, block_1_Click);
function block_1_Click(e:MouseEvent):void {
    block_1.play();

}

block_1.addEventListener(Event.ENTER_FRAME, wavePlay);
function wavePlay(e:Event):void {
    if (block_1.currentFrame==block_1.totalFrames) {
        wave_mc.play();

    }

}

1 个答案:

答案 0 :(得分:1)

关于ENTER_FRAME事件的

Adobe's doc说:

  

[...]播放头进入新帧时调度。如果播放头没有移动,或者只有一个帧,则会结合帧速率连续调度此事件。 [...]

这意味着ENTER_FRAME事件会一直运行,直到您删除其侦听器。

您的代码应为:

block_1.stop();
block_1.addEventListener(MouseEvent.CLICK, block_1_Click);
function block_1_Click(e:MouseEvent):void {
    block_1.play();

}

block_1.addEventListener(Event.ENTER_FRAME, wavePlay);
function wavePlay(e:Event):void {
    if (block_1.currentFrame==block_1.totalFrames) {            
       wave_mc.play();
       block_1.removeEventListener( Event.ENTER_FRAME, wavePlay );

    }

}