好吧,所以我是AS3和Flash的初學者,我設法將這些代碼放在一起進行動畫製作。稱爲start_btn的按鈕應該啓動並停止名爲main_mc的動畫片段。在第一次點擊按鈕時,Movieclip應該播放(它會這樣做),但是在第二次點擊時,電影會停在動畫的中間(我不想)。 我的問題是,當您再次單擊按鈕時,如何才能使Movieclip完成播放其動畫,然後在最後一幀停止播放?AS3按鈕在完成播放後停止Movieclip
我曾考慮過使用if (main_mc.currentFrame == main_mc.totalFrames); {main_mc.stop();
,但Movieclip仍然停留在最後一幀。 Movieclip本身在最後一幀也有一個gotoAndPlay(2);
命令,這樣在第二次點擊按鈕之前動畫重複出現。
這裏是代碼我有:
`start_btn.addEventListener(MouseEvent.CLICK,mainaniS);
function mainaniS(event:MouseEvent):void
{
main_mc.play();
start_btn.removeEventListener(MouseEvent.CLICK, mainaniS);
start_btn.addEventListener(MouseEvent.CLICK, mainaniSt);
}
function mainaniSt(event:MouseEvent):void
{
if (main_mc.currentFrame == main_mc.totalFrames);
{main_mc.stop();}
start_btn.removeEventListener(MouseEvent.CLICK, mainaniSt);
start_btn.addEventListener(MouseEvent.CLICK, mainaniS);
}`
非常感謝您的代碼和解釋。我只知道一些命令,所以我從來沒有考慮過使用變量。代碼運行的很好,但是我遇到了一個問題。當Movieclip停止時,它太早停止一幀。 Movieclip有26幀。我測試了電影,並將Movieclip停止的時刻與時間線進行了比較,並且它在幀25而不是幀26上停止。我還跟蹤了main_mc.currentFrame和main_mc.totalFrames,分別獲得了「25」和「26」。無論如何,你是否知道解決這個問題,以便它停在第26幀上? –
Mike不用擔心。至於在最後一幀停止,main_mc.totalFrames等於26,是否正確?如果是這樣,那麼最後一幀的編號將是25而不是26.這是因爲幀編號從零開始而不是一個。因此,main_mc的幀號將爲「0,1,2,3,...,23,24,25」,共26幀。 – jayrobin
這就是我第一次理解它,所以我不知道爲什麼我的動畫看起來像是在早期停止框架。我認爲追蹤它會有所幫助,但我想它沒有,大聲笑。無論如何,我只是稍微調整一下動畫,使它更平滑。非常感謝您的幫助和提示!實際上我有其他的按鈕是用多個add/removeEventListeners設置的,所以建議我使用變量來控制它們,而不是幫助一個大問題。再次,謝謝你! –