2011-10-14 120 views
3

我有一個怪物的場景。怪物眨了眨眼睛。眨眼是一個單獨的MovieClip。 在某些條件下,怪物張開嘴巴。嘴開放也是一個單獨的MovieClip。此時我必須隱藏眼睛MovieClip。只要怪物閉上嘴巴,我必須讓眼睛再次閃爍可見。Actionscript 3.0 MovieClip幀更改監聽器

我的想法是有一些偵聽器來偵聽Mouth_opening MovieClip。當嘴開放的當前幀從1變爲2時,我會隱藏眼睛。當它從2變爲1時,我會回顯。

所以,問題是:我如何傾聽currentFrame的變化? Event.ENTER_FRAME不合適:它不僅在currentFrame發生變化時被調用每個渲染幀。

回答

5

在ActionScript中沒有「frameChange」事件,因此您需要創建自己的系統。例如,您可以通過偵聽enterFrame使其工作,然後監視當前幀 - 當它改變時調用您的函數。類似的東西應該可以工作:

private var lastFrame:int = -1; 

// Then add this in your constructor: 
addEventListener("enterFrame", onEnterFrame); 

private function onEnterFrame(event:*):void { 
    if (lastFrame != currentFrame) { 
     onFrameChanged(); 
     lastFrame = currentFrame; 
    } 
} 


private function onFrameChanged():void { 
    trace("The frame has changed to " + currentFrame); 
}