星期一, 8月 09, 2010

Flash Scene - 多場景互動

在開發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");
}

沒有留言:

張貼留言