看板 Flash 關於我們 聯絡資訊
※ 引述《MagicYan (【賣幾客.羊】)》之銘言: : 小弟不才正在處理一個project,由於flex的binding實在很好用 : 於是大量使用它來做處理,其中 : mx.binding.utils.BindingUtils : 裡的bindSetter()是我蠻愛用的手工binding function : 大致上用起來也沒什麼大問題,也很愉快,但在某些情況下 : binding會失敗,失敗的狀況如下: : 自訂一個Singleton的類別放許多參數用來binding,在flash裡頭製作 : 許多flash動畫,也用自訂類別跟它綁定並匯出成swc給Flash Builder使用, : 與flash動畫綁定的外部as裡只要寫到有關Singleton類別裡的相關屬性或方法, : 如此一來  : BindingUtils.bindSetter(setFunction, Singleton.getInstance(), "property") : 就會失效,而且奇怪的是有時候偶爾會成功(時好時壞),Binding.bindProperty() : 也試過,一樣有這問題… : 不曉得這問題出在哪裡?或者是bug? 煩惱了好幾天 >"< 這是自己寫的Singleton類別,基本上是照本宣科 package { [Bindable] public class GameScene { public var currentScene:String; public function GameScene(s:SingletonEnforcer) {} private static var _instance:GameScene; public static function getInstance():GameScene { if(GameScene._instance==null) { GameScene._instance = new GameScene(new SingletonEnforcer()); } return GameScene._instance; } } } class SingletonEnforcer{} 在主程式mxml裡,當主程式creationComplete時寫上: BindingUtils.bindSetter(this.changeScene, GameScene.getInstance(), "currentScene"); 與 private function changeScene(sceneName:String):void { trace(sceneName); } 只要GameScene.getInstance().currentScene = "someScene"; 就會trace出一些字串,基本上若是這樣執行都是ok的,但只要swc存在,且 swc裡的as存在 GameScene.getInstance().currentScene = "someScene"; 的一些function,這binding就會失敗,感謝解答。 m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.219.194
cjcat2266:"SWC存在"與"SWC理的AS存在"意思是? 07/04 02:35
MagicYan:就是flash與外部類別的as綁定再匯出成swc,外部類別as裡 07/04 02:45
MagicYan:只要存在GameScene.getInstance().currentScene.... 07/04 02:46
※ 編輯: MagicYan 來自: 114.45.219.194 (07/04 02:46)
MagicYan:swc是給flash builder使用的 07/04 02:48
cjcat2266:你的SWC是怎麼做出來的?用Flash內部的指令嗎? 07/04 02:57
cjcat2266:如果不是用Flex SDK來編譯SWC,我記得meta tag是無效的 07/04 02:58
MagicYan:用flash cs5的command->conver symbol to Flex component 07/04 03:00
MagicYan:再publish 07/04 03:00
MagicYan:有時則是用Flash Builder直接插入Flash Professional 07/04 03:02
MagicYan:Component,它會直接叫Flash cs5出來,按done 它會自動 07/04 03:03
MagicYan:匯出swc 07/04 03:03
ben0209:你製作SWC時,是不是有包含到同一份AS,導致GameScene 07/04 12:01
ben0209:出現多次,所以有時候改這個、重新發佈 正常,有時候不正 07/04 12:02
ben0209:常,跟發佈順序有關 07/04 12:02
MagicYan:對,有包含到同一份as,那順序應該是怎樣才正確呢? 07/04 12:50
MagicYan:查出問題所在了...果然跟邦大說的一樣,感謝cj大與邦大 07/04 14:17