在我的flex應用程序中,我有一個公共可綁定屬性。 我希望它每次該屬性的值發生變化時都會觸發一個函數。 我嘗試使用ChangeWatchers,但它似乎只適用於像文本框更改內置組件。 我想要在運行時更改屬性的相同行爲。觀察可綁定屬性
觀察可綁定屬性
回答
一種選擇是使用BindingUtils.bindSetter
(順帶返回返回ChangeWatcher):
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="this_creationComplete()">
<mx:Script>
<![CDATA[
import mx.binding.utils.BindingUtils;
import mx.binding.utils.ChangeWatcher;
[Bindable]
public var myValue:int = 0;
private function this_creationComplete():void
{
var cw:ChangeWatcher = BindingUtils.bindSetter(myValueChanged, this, "myValue");
}
private function setValue():void
{
myValue = getTimer();
}
private function myValueChanged(o:Object):void
{
trace("myValue: " + myValue.toString());
// You can also use o.toString() -- the new value will be passed into the function
}
]]>
</mx:Script>
<mx:Button label="Click Me" click="setValue()" />
</mx:Application>
這裏,myValueChanged
被稱爲每當myValue
屬性更改。當然,還有其他的方法,但我經常使用這種方法取得好的效果。希望能幫助到你!回覆問題,我會留意。
好吧,最簡單的方法是聽PropertyChangeEvent.PROPERTY_CHANGE
......如果你聲明一個可綁定的屬性,那麼mxmlc會生成代碼來分派這個事件......如果你讓編譯器保留生成的ActionScript,那麼你會看到它... ...
除此之外,你可能想看看BindingUtils
...
查找到BindUtils類作爲back2dos建議。
而且,還可以設置當一個變化是爲了一個屬性,將觸發該事件的名稱(默認爲爲propertyChange)這樣的:
[Bindable("change")]
var myProperty : SomeClass;
也就是說,如果ChangeWatchers增加偵聽器更改事件而不是propertyChange事件。這將是一種奇怪的,但並非不可能的所有flex SDK的不幸。
但是,我認爲BindUtils類應該爲你做好訣竅。
使用ObjectProxy類或其子類幷包裝具有需要觀察的屬性的類。在我的例子,我打電話,如果有人更改屬性的薪水給它的對象者超過55000的值FUNC:
包com.farata { 進口mx.utils.ObjectProxy; import flash.utils。*;
use namespace flash_proxy;
public dynamic class MyPersonProxy extends ObjectProxy
{
// The object to wrap up
private var person:Person;
public function MyPersonProxy(item:Person){
super(item);
person=item;
}
flash_proxy override function setProperty(name:*, value:*):void {
如果(名稱== '薪水' & &值> 55000){// 一個新屬性添加到 //類Person的該實例中,其可在計算 被用來//賠償總額 setProperty(「pension」,0.02); } super.setProperty(name,value);
} } }
- 1. 當屬性不可觀察時綁定
- 2. MVVM綁定到可觀察屬性的屬性
- 3. 使用keyPath綁定2屬性(觀察)
- 4. Knockoutjs可觀察綁定
- 5. 觀察屬性
- 6. 觀察和指定屬性
- 7. 角動態窗體可觀察屬性綁定
- 8. 將JavaFx屬性綁定到多個可觀察對象
- 9. Angular2綁定可觀察的功能,而不是屬性
- 10. Angular2 - 將UI綁定到可觀察屬性
- 11. IsChecked屬性綁定到可觀察集合
- 12. ExtJS:綁定可觀察的布爾屬性
- 13. 屬性綁定不檢測內可觀察到的
- 14. knockoutjs可觀察對象的可觀察數組綁定
- 15. Knockout.js計算可觀察不綁定到可觀察數組
- 16. Aurelia:如何觀察綁定對象的特定屬性(自定義屬性)
- 17. 觀察可觀察範圍內的所有屬性更改
- 18. 如何綁定可觀察的觀察到在淘汰賽JS
- 19. 觀察AngularJS的可觀察性
- 20. 飛鏢和可觀察的屬性
- 21. 獲取可觀察屬性列表
- 22. 如何訪問可觀察屬性
- 23. 綁定可觀察集合到ListView
- 24. 從可觀察到的獲取綁定
- 25. XAML綁定可觀察集合到DataGrid
- 26. 綁定到可觀察子類集
- 27. KendoUI可觀察和點擊綁定
- 28. 可觀察字典和更新綁定
- 29. 綁定到可觀察陣列
- 30. Knockout.js - 交叉iframe可觀察綁定