Pay for Hesitation: Notes about Auto Binding

Pages

2010年7月20日 星期二

Notes about Auto Binding

flash authoring tool中的symbol, 可以利用export成 linked class的方式。
來跟外部的Linked.as檔做連結。
並且在編譯後, 可以利用該Linked Class來create instance。
我稱做auto binding.

auto binding這是一個方便的設計, 並且在多本書中被推薦使用的方法。
經過一番測試,大致可推測flash 在做此類auto binding的時間點。

1. 在flash authoring tool下編譯時,如果symbol的Linked Class可以在class path中找到,那麼會在編譯時便做好auto binding;因此如果Linked Class有控制symbol的程式邏輯,可以立即在編譯後產生的swf中看到效果。

2. 在flash authoring tool下編譯時,如果symbol的Linked Class無法在class path中找到,那麼會自動產生一個新的Linked Class,並且亦可用此Linked Class create instance.

3. 在flex builder下編譯時,auto binding會發在擁有該symbol的swf被 Loader載入完成的那一刻,所以在此時間點之前Linked Class create的instance中都不會有symbol的resource。(Linked.as 必須存在於flex builder 的class path)

4. 因為第3點,在flash authoring tool中編譯場景檔時,即使symbol的linked class不存在於flash authoring tool 的 class path亦不影響auto binding的成功與否。因為只要在flex builder 的編譯時期,AVM能夠正確地找到對應的 fully qualified class name 即會auto binding。

5. 之前用bulkloader在Controller.swf中去讀Scene.swf時,同第三點亦能正確的auto binding。

6. 但當我在SceneManager.swf 無論用Loader 或 BulkLoader去載入Controller.swf,Controller.swf中的bulkloader在載入完Scene.swf後,卻沒有auto binding!!非得用Loader先去載入Scene.swf一次,才能成功 auto binding。


沒有留言: