作者MagicYan (【賣幾客.羊】)
看板Flash
標題Re: [問題] Flash Builder Binding失敗
時間Sun Jul 4 02:31:01 2010
※ 引述《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