在自定义类中使用数据绑定,通常是这样:
class aaaaa{
private var _width;
private var _height;
[Bindable]
public function get width():int{
return _width;
}
[Bindable]
public function get height():int{
return _height;
}
public function set width(value:int):void{
_width = value;
}
public function set height(value:int):void{
_height = value;
}
。。。
}
然后,在一个MXML文件中使用这个类及其属性数据绑定到{ccccc.width}和{ccccc.height},
今天,实际操作时发现,当调用该类的changesize()方法时,发生如下情况:
public changesize(){
_height = 300; //本句不能触发数据绑定
width =400; //本句能触发
}
由此猜测:当自定义类支持数据绑定时,内部是放在在public属性上或getter/setter方法对中实现的,而不是private的属性中,当我们绕过这些方法,更新private属性时,不能触发数据更新事件的分发。除非,我们在类内部也要用setter方法来赋值。