如何仅播放一次影片剪辑?
问题描述:
我在这个网站上做了一些研究,并找出了我想要做的大部分工作。我点击一个块。该块移动。完成后播放另一个影片剪辑。问题是它循环第二个影片剪辑。我发现了一个处理这个问题的查询,但无法弄清楚如何使它与下面的代码一起工作。一旦if语句是真的,它只是继续播放剪辑(因为它应该),但我不知道如何使它播放一次。任何建议非常感谢。如何仅播放一次影片剪辑?
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();
}
}
答
Adobe's doc有关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);
}
}
@ user30191,当时这个答案对你有用吗?如果是这样,你介意接受它作为正确的吗? http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – PanterA 2013-03-12 01:00:04