2013-03-09 53 views
0

我在這個網站上做了一些研究,並找出了我想要做的大部分工作。我點擊一個塊。該塊移動。完成後播放另一個影片剪輯。問題是它循環第二個影片剪輯。我發現了一個處理這個問題的查詢,但無法弄清楚如何使它與下面的代碼一起工作。一旦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(); 

    } 

} 

回答

1

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); 

    } 

} 
+0

@ user30191,當時這個答案對你有用嗎?如果是這樣,你介意接受它作爲正確的嗎? http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – PanterA 2013-03-12 01:00:04

相關問題