BindingUtils
是在Flex SDK,這就是爲什麼你鏈接到其他職位是不是適合你的情況的一類。
要在不訪問Flex庫的情況下實現綁定,您必須手動編寫事件調度程序和相應的處理程序。
下面的文章可能是讓你開始有幫助的,因爲它具有閃存只和Flex代碼: Introduction to Event Handling in AS3
有可能是這樣做的更好的辦法,但在本質上,你需要用任何想要在延伸EventDispatcher的類中綁定的變量。例如,像:
public class BindableString extends EventDispatcher {
private var _value:String = '';
public function BindableString(str:String = null) {
value = str;
}
public function set value(str:String):void {
_value = str;
dispatchEvent(new Event(Event.CHANGE));
}
public function get value():String {
return _value;
}
}
然後,在其他一些類你需要一個處理程序,如:
public class MyClass {
public var foo:BindableString = new BindableString();
private var _bar:String = "bar";
public function MyClass() {
foo.addEventListener(Event.CHANGE, handleFooChange);
foo.value = "foo";
trace(_bar); // "foo"
}
private function handleFooChange(e:):void {
_bar = foo.value;
}
}
然後在foo
每一個變化應該得到傳播到_bar
。
這是基本輪廓。我沒有運行這個代碼,但它應該提供完成綁定的基礎。這也應該允許您綁定到MyClass
之外的foo
。
也許別人可能知道是否可能已經有一個EventDispatcher的好後代,它可能已經實現了這個功能。我主要是一個Flex編碼器,所以我不知道我的頭頂上有什麼。
我希望跨類綁定。我給這個帖子簡化了這個例子。在我的項目中,變量處於不同的類別中。今天,我通過監聽來自第一個變量的事件來跟蹤更改。 – RaamEE 2011-03-21 05:40:35
好吧,似乎綁定變量僅限於Flex項目。任何最後的構想將不勝感激 – RaamEE 2011-03-21 11:51:15