用Flex 做项目,免不了要经行数据绑定操作,却经常会遇到各种各样的问题,"unable to bind to property",就是经常遇到的问题,这个是一个警告,不会影响到程序的运行.
下面是我的代码:
[Bindable]
public var MsgObject:Object;
private function init():void
{
MsgObject =new Object;
MsgObject .name="xxxx";
MsgObject .url="xxxxxx";
}
然后我将 MsgObject 提供给一个控件做为数据源:
attributes="{MsgObject}"
visible="false">
..................
.................
在使用过程中出现下面的警告:
warning: unable to bind to property 'name' on class 'common::MapObject'
warning: unable to bind to property 'url' on class 'common::MapObject'
...............
...............
解决方案: 新建一个类:
public class MapObject extends Object
{
public function MapObject()
{
super();
}
[Bindable]
public var Url:String;
[Bindable]
public var Name:String;
}
每个成员变量都用 [Bindable]
然后 Init函数改成下面的形式,就不会出现警告了:
private function init():void
{
MsgObject =new Object;
MsgObject .name="xxxx";
MsgObject .url="xxxxxx";
}
OK,成功!