在開發flash 的時候,用多個場景可以讓版面和時間軸保持乾乾淨淨~
可是今天發現不同場景互相呼叫 function 的時候,被呼叫的 function 會跑到呼叫者的場景
而不同場景上的元件是不能互相存取的! (這個部分是經驗而已,有誤請不吝指正:D)
以下舉個例子:
scene1 - function1 { call mc1; call function2; }
\ mc1
scene2 - function2 { call mc2; }
\ mc2
依此例來討論,function1 呼叫 function2 的時候, function2 會在 scene1 中被執行
如此一來就會發生錯誤,因為 scene1 中並沒有 mc2
解決辦法:
在 function2 第一行插入 gotoAndStop(1, "scene2");
則會先跳轉到 scene2 後才會執行接下來的程式碼 就不會出現錯誤
另外附上從 ActionScript 3.0 語言和組件參考 中列出場景的範例
for (var i:uint = 0; i < MovieClip(root).scenes.length; i++)
{
var scene:Scene = MovieClip(root).scenes[i];
trace("scene " + scene.name + ": " + scene.numFrames + " frames");
}
沒有留言:
張貼留言