http://hi.baidu.com/luming19840827/blog/item/7e715bb7cfbbcbc236d3cace.html
rrayCollection 是增强性的 Array,依然是用数组来存储数据,但支持多种排序、属性绑定等,适合用来处理复杂数据。
但是,其子元素是无法作为数据源绑定的。
网上和论坛好友们贴出来的解决办法都是采用ObjectProxy这个类做一个中间代理:
myArrayCollection.push(new ObjectProxy({”label”:”Flex”,”icon”:”assets/fl.png”}))
arrayContactList.addItem(new ObjectProxy({employeeName:pojo.employeeName})
这样其实就是从数据源头来堵住这个可能发生的错误,但是这个做法 有个缺点,他不能应用于标签数据<mx:ArrayCollection />这个格式的数据。
今天我尝试了另外一个方法,呵呵,也成功解决这个问题了。
我的解决思路就是通过AS,使用BindingUtils这个类的bindProperty方法,对itemRenderer “主动设置” 绑定数据。
修改了原来自定义的itemRenderer为:
<?xml version=”1.0″ encoding=”utf-8″?>
<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>
测试发布,哈哈,再也不出现警告错误信息了。
——————————————————————————
(修改于3月6日)
我现在很想说我是个白痴,我是个井底之蛙,我还以为我发现了一个重大的解决办法,其实我错了,我一开始就走弯路了。
按照我那个做法,绑定进行一次,以后再拖动tileList,出来的数据是不会更新的。
我太小家之气了。上面的也不删除了,让自己记住这个错误。
修改上面的自定义itemRenderer为下面这样,就什么都不用考虑了并且一切Ok了。
感谢L4cd
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:VBox xmlns:mx=”http://www.adobe.com/2006/mxml”>
<mx:Script>
<![CDATA[
import mx.binding.utils.BindingUtils;
[Bindable]
private var _data:Object;
[Bindable]
private var _label:String;
[Bindable]
private var _icon:String;
override public function set data(value:Object):void{
_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>
分享到:
相关推荐
Using unsupported buffer type: -1 (parameter: 1) QMYSQL3: Unable to bind value。 QSqlError("2036", "QMYSQL3: Unable to bind outvalues", "Using unsupported buffer type: 3 (parameter: 3)") 而此资源是较...
今天开机发布程序,启动项目,竟然报错说8080端口被占用,没关系 只要是把占用这个端口的进程杀掉即可
Unable to load class ‘javax.xml.bind.JAXBException‘(csdn)
如果libmysql.dll太老,可能会出现以下错误 Using unsupported buffer type: -1 (parameter: 1) QMYSQL3: Unable to bind value。 QSqlError("2036", "QMYSQL3: Unable to bind outvalues", "Using unsupported ...
c++11引入了std::bind及std::function,实现了函数的存储和绑定,即先将可调用的对象保存起来,在需要的时候再调用。定义了SignalObject信号类和SlotObject槽类,其中信号类中的 std::function(int)> _call就是要...
在myeclipse中将html文件改成jsp文件时myeclipse卡住;将之前的任务关掉;再打开时多次部署项目的时候报错
一个简单的C#工具入门程序
Linux网络编程:绑定( bind )需要注意的问题, 相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/44057585
NULL 博文链接:https://googlee.iteye.com/blog/1003057
Maven坐标:jakarta.xml.bind:jakarta.xml.bind-api:2.3.3; 标签:bind、xml、api、jakarta、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
Maven坐标:jakarta.xml.bind:jakarta.xml.bind-api:2.3.3; 标签:bind、xml、api、jakarta、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...
How to bind data to different DataTemplate in Universal Windows Platform apps
记录一次报错解决方法: No converter found capable of converting from type [java.lang.String] to type [java.util.Map] org.springframework.boot.context.properties.bind.BindException: Failed to bind ...
主要介绍了C++ 11 std::function和std::bind使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
实现了标准库中的function和bind以及智能指针,linux/windows通用。由于公司GCC版本较老,嵌入式的gcc也无法由我来控制,windows上使用的一些类似智能指针,在linux上无法使用,甚是不爽,于是自己手动写了一份,...
基本逻辑思考 ...接下来是 bind,首先要解决的就是如何保存创建时的参数列表,这里就用到 tuple 来保存了 奇技淫巧还是运行函数时取相应的元组的对应位置的值,还是类似的方式,通过特化模板,公式是
Linux Socket Bind() 成功解决socket编程中bind端口绑定的Error:Address already in use 错误。
主要介绍了 Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突的相关资料,需要的朋友可以参考下
解决问题关于tomcat的端口异常错误信息