Pay for Hesitation: load swf 發生的問題

Pages

2010年7月20日 星期二

load swf 發生的問題

本來的架構是, 有兩個Scene,
每個Scene是一個project.
ControllerA.swf 去loaded ViewA.swf
ControllerB.swf 去loaded ViewB.swf

Scene之間的切換是利用navigateToURL透過server端去跳轉.
後來需求做了改變, 希望改由client端來控制scene之間的切換,

於是我寫了SceneManager Project來做這件事,
但又希望儘可能不破壞原有兩個Scene Project的程式架構.

所以變成SceneManager 去 create & launch Controller的instance,
原本的UI控制, 遊戲流程的程式邏輯都無變更.

僅在於要做場景切換時,
Controller 同樣先做destroy的動作,
但會透過connection channel 通知SceneManager做跳轉的動作,
而非原本的navigateToURL.

但首先SceneManager在create & launch Controller的instance時,
原先可以work的場景檔會出一些問題,
如:MovieClip的currentFrameLabel屬性變成undefined,
SimpleButton註冊的事件無反應,
有些MovieClip的效果不見了,
甚至有的MovieClip消失在場景上了.

試了好多地方, 如改變Load swf的方法 ( Loader, BulkLoader),
initialize controller instance的時間點.

最後才發現問題是沒在SceneManager Project 加上-target-player=10.1.0的設定.
(ControllerA 和ControllerB本身兩個Project都有加上面這個參數)



沒有留言: