來跟外部的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。
沒有留言:
張貼留言