2014-03-04 97 views
0

我正在初始化我的時間軸中的符號,並嘗試訪問這些符號中的變量,但它們返回0或未定義,即使我在變量符號的時間軸中設置了變量。由於某些原因,變量尚未設置,但主時間軸可以看到它們存在。如何讓程序等待變量設置完成?as3符號變量尚未初始化

+0

這並不直接回答你的問題,但如果你把代碼放在符號中,你可能會把代碼放在外部.as類。這是一種更加靈活的開發方式。當你創建一個類的實例時,你可以完全控制它的變量是如何初始化的。對不起,但我儘可能避免使用時間表。 – moosefetcher

+0

我們必須使用課程項目的時間表 – user2956947

回答

0

使用類的最佳實踐,不在Timeline和MovieClip幀中編碼。 我假設你有來自設計師的MovieClip,並且你想要在特定的框架中注入一些邏輯。有很多選擇。

活動

您可以在特定的幀觸發事件,並且你在正常的工作方式(與類和類成員)。

//Frame code 
import flash.events.Event; 

this.dispatchEvent(new Event("IntroDidFinish", true, true)); 
stop(); 

//Somewhere in class 
myContainer.addEventListener("IntroDidFinish", onIntroFinish, false, 0, true); 

function onIntroFinish(e: Event):void{ 
    //Do your stuff 
} 

活動幫助您從設計(預定義的複雜的影片剪輯等)

等待初始化

至於影片剪輯達到一定​​框架脫鉤的邏輯,你應該等待初始化額外的時間。這就是爲什麼99.9%的AS3開發人員不喜歡MovieClip作爲任何關鍵數據或邏輯的持有者。這意味着如果您撥打myMovieClip.goToAndStop(8);,您將無法在執行goTo操作後在8框中獲得myMovieClip.someValue。如果你仍然想用這樣的方法,最簡單的解決方案將會是Event.ENTER_FRAME,之後goTo訂閱ENTER_FRAME事件,只進行一次更新,並做你的工作;)

+0

我們不使用as3課程中的課程。我如何在時間軸中實現這一點? – user2956947