在我的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可观察绑定