2014-03-14 74 views
0

我正在構建一個支持英語和日語的SWF面板,以及一個用於在它們之間切換的按鈕。英國是第1幀,在框架2.在第一幀有此相關的AS3日本:爲什麼我的一個AS3事件處理程序只能工作一次?

btnLangToggle.addEventListener(MouseEvent.CLICK, onLangToggle); 

...

this.stop(); 

...

function onLangToggle(e:MouseEvent):void { 
    if (MovieClip(root).currentFrame == 1) { 
     MovieClip(root).gotoAndStop(2); 
    } else { 
     MovieClip(root).gotoAndStop(1); 
    } 
    trace(MovieClip(root).currentFrameLabel); 
} 

我點擊按鈕,事件處理函數運行正常,一次。如果我再次點擊它,沒有任何反應。爲什麼?

編輯:這是我的兩個幀和時間線的樣子。

English and Japanese UI

Timeline

+0

您的腳本在第1幀和第2幀中都可用。您的時間線如何? –

+0

我已經用兩幀圖像和時間線更新了問題。 – PokeJoe

+0

Tha真的很奇怪......在第1幀和第2幀都有相同的按鈕實例exista? –

回答

0

如果我再次點擊它,什麼都不會發生。爲什麼?

因爲它是一個MovieClip,它們是爲動畫設計的,而不是爲應用程序狀態設計的。第一幀中的場景中的對象在第二個關鍵幀中不可訪問。

我假設你的情況下,你有按鈕切換不同的MovieClip(不同的語言)實例的語言。在第二幀再次申請事件偵聽語言按鈕的日語版本:

btnLangToggle.addEventListener(MouseEvent.CLICK, onLangToggle); 

另外,請閱讀Document Class,這是非常簡單的創建一個只有2個國家的應用,就像你有(2幀... )

+0

我改寫了我的留言 –

+0

其實,我沒有使用單獨的影片剪輯。我將所有組件都放在主時間軸上。這些組件都在單一圖層上,並且此圖層在第1幀和第2幀上有關鍵幀。我更改了第2幀上所需組件的標籤。動作有一個空白關鍵幀,其中包含第1幀上的所有代碼,並且沒有其他關鍵幀。然而我會看看Document類。 – PokeJoe

+0

我已經用我的兩幀圖像和時間線更新了問題。 – PokeJoe

0

我假設你使用按鈕的關鍵幀,對吧? 您必須確定兩個框架上的按鈕是相同的。這意味着你不能使用關鍵幀 - 而是使用單獨關鍵幀和兩個普通幀的單獨圖層。這樣你的代碼就可以工作,因爲它是同一個按鈕。

相關問題