在我的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. 屬性綁定不檢測內可觀察到的
- 3. 將JavaFx屬性綁定到多個可觀察對象
- 4. 角動態窗體可觀察屬性綁定
- 5. Angular2綁定可觀察的功能,而不是屬性
- 6. IsChecked屬性綁定到可觀察集合
- 7. Angular2 - 將UI綁定到可觀察屬性
- 8. knockoutjs可觀察對象的可觀察數組綁定
- 9. Aurelia:如何觀察綁定對象的特定屬性(自定義屬性)
- 10. 觀察可觀察範圍內的所有屬性更改
- 11. 獲取可觀察屬性列表
- 12. 無法綁定到可觀察陣列
- 13. 綁定到可觀察陣列
- 14. Knockout.js - 交叉iframe可觀察綁定
- 15. 將可觀察集合綁定到GridView
- 16. 綁定到可觀察子類集
- 17. XAML綁定可觀察集合到DataGrid
- 18. 綁定兩個可觀察集合
- 19. 可觀察DataContracts和雙向綁定
- 20. aurelia屬性觀察從父母綁定的對象
- 21. 語法一個視圖模型可觀察特性的不可觀測屬性綁定在knockout.js
- 22. 觀察NSURL iCloud屬性
- 23. EmberJS - 觀察計算屬性
- 24. 觀察屬性的變化
- 25. NSTableView綁定和觀察者
- 26. 如何使可觀察數組中的對象屬性可觀察?
- 27. Knockout.js在綁定後失去可觀察性
- 28. knockout-kendo通過計算可觀察性發布綁定
- 29. knockoutjs,通過自定義綁定修改時未觀察到可觀察陣列
- 30. 在可觀察數組中使用可觀察屬性推送對象仍然會跟蹤對象的屬性。