加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex中的ArrayCollection绑定警告: unable to bind to property

发布时间:2020-12-15 04:38:27 所属栏目:百科 来源:网络整理
导读:转载:http://hi.baidu.com/exgeztfhdnbkmwd/item/5820201b17cae1fa9d778acc 在Flex的开发中,绑定是经常用到的,而令人烦恼的是会不断出现以下警告: warning: unable to bind to property 'icon' on class 'Object' (class is not an IEventDispatcher) 那

转载:http://hi.baidu.com/exgeztfhdnbkmwd/item/5820201b17cae1fa9d778acc


在Flex的开发中,绑定是经常用到的,而令人烦恼的是会不断出现以下警告:

warning: unable to bind to property 'icon' on class 'Object' (class is not an IEventDispatcher)

那到底应该怎么解决?看如下例子:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:ArrayCollection id="arrColl">
?? <mx:source>
??? <mx:Array id="arr">
???? <mx:Object data="0" label="" icon="img/0.gif"/>
???? <mx:Object data="1" label="" icon="img/1.gif"/>
???? <mx:Object data="2" label="" icon="img/2.gif"/>
???? <mx:Object data="3" label="" icon="img/3.gif"/>
???? <mx:Object data="4" label="" icon="img/4.gif"/>
???? <mx:Object data="5" label="" icon="img/5.gif"/>

??? </mx:Array>
?? </mx:source>
</mx:ArrayCollection>???
<mx:PopUpButton id="popUpButton_pic" openAlways="true" width="43" height="23">
?? <mx:popUp>
??? <mx:TitleWindow id="titleWindow_popUp" width="450" height="400"?
??????? showCloseButton="true" verticalScrollPolicy="on" horizontalScrollPolicy="off" close="popUpButton_pic.close();">
???? <mx:ToolBar width="430">
????? <mx:Repeater id="myRep" dataProvider="{arrColl}">
?????? <mx:Image id="myimgclick" buttonMode="true" data="{myRep.currentIndex}" source="{myRep.currentItem.icon}">
??????? </mx:Image>
????? </mx:Repeater>
???? </mx:ToolBar>
??? </mx:TitleWindow>
?? </mx:popUp>
</mx:PopUpButton>
</mx:Application>


运行上面的例子,是没有错误,但是警告却不少(如下图),原因在于Objet 不是IEventDispatcher类型。

解决方法如下:

http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
<mx:ArrayCollection id="arrColl">
?? <mx:source>
??? <mx:Array id="arr">
???? <local:myCls data="0" label="" icon="img/0.gif"/>
???? <local:myCls data="1" label="" icon="img/1.gif"/>
???? <local:myCls data="2" label="" icon="img/2.gif"/>
???? <local:myCls data="3" label="" icon="img/3.gif"/>
???? <local:myCls data="4" label="" icon="img/4.gif"/>
???? <local:myCls data="5" label="" icon="img/5.gif"/>

??? </mx:Array>
?? </mx:source>
</mx:ArrayCollection>???
<mx:PopUpButton id="popUpButton_pic" openAlways="true" width="43" height="23">
?? <mx:popUp>
??? <mx:TitleWindow id="titleWindow_popUp" width="450" height="400"?
??????? showCloseButton="true" verticalScrollPolicy="on" horizontalScrollPolicy="off" close="popUpButton_pic.close();">
???? <mx:ToolBar width="430">
????? <mx:Repeater id="myRep" dataProvider="{arrColl}">
?????? <mx:Image id="myimgclick" buttonMode="true" data="{myRep.currentIndex}"????????? source="{myRep.currentItem.icon}">
??????? </mx:Image>
????? </mx:Repeater>
???? </mx:ToolBar>
??? </mx:TitleWindow>
?? </mx:popUp>
</mx:PopUpButton>
</mx:Application>

myCls.as:

package
{
[Bindable]
public class myCls
{
?? public var data:String;
?? public var tp:String;
?? public var label:String;
?? public var icon:String;
?? public function myCls()
?? {
?? }

}
}

通过上面的方法,就可以很轻松地解决绑定的问题,而这种方法,我称其为“类绑定法”。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读