warning: unable to bind to property ‘icon’ on class ‘Object’ (class is not an IEventDispatcher)
<mx:VBox xmlns:mx=”http://www.adobe.com/2006/mxml”>
<mx:Image source=”{data.icon}”/>
<mx:Button label=”{data.label}”/>
</mx:VBox>
但是,其子元素是无法作为数据源绑定的。
这样其实就是从数据源头来堵住这个可能发生的错误,但是这个做法有个缺点,他不能应用于标签数据<mx:ArrayCollection />这个格式的数据。
。
<mx:VBox xmlns:mx=”http://www.adobe.com/2006/mxml” creationComplete=”init();”>
<mx:Script>
<![CDATA[
import mx.binding.utils.BindingUtils;
private function init():void{
BindingUtils.bindProperty(pic,"source",data,"icon");
BindingUtils.bindProperty(bt,"label",data,"label");
}
]]>
</mx:Script>
<mx:Image id=”pic”/>
<mx:Button id=”bt”/>
</mx:VBox>
L4cd
<mx:VBox xmlns:mx=”http://www.adobe.com/2006/mxml”>
<mx:Script>
<![CDATA[
import mx.binding.utils.BindingUtils;
[Bindable]
private var _label:String;
[Bindable]
private var _icon:String;
_label=value.label;
_icon=value.icon;
_data=value;
}
override public function get data():Object{
return _data;
}
]]>
</mx:Script>
<mx:Image source=”{_icon}”/>
<mx:Button label=”{_label}”/>
</mx:VBox>