我已经对这个网站做了一些研究,并找出了我想要做的大部分内容。我点击一个块。块移动。完成后,它会播放另一个影片剪辑。问题是它循环第二个影片剪辑。我找到了一个处理此问题的查询,但无法弄清楚如何使其与下面的代码一起使用。一旦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();
}
}
答案 0 :(得分:1)
ENTER_FRAME
事件的
[...]播放头进入新帧时调度。如果播放头没有移动,或者只有一个帧,则会结合帧速率连续调度此事件。 [...]
这意味着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 );
}
}