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>
分享到:
相关推荐
如果libmysql.dll太老,可能会出现以下错误 Using unsupported buffer type: -1 (parameter: 1) QMYSQL3: Unable to bind value。 QSqlError("2036", "QMYSQL3: Unable to bind outvalues", "Using unsupported ...
##ERROR: Cause: unable to find valid certification path to requested target终极解决方法 各位兄弟,觉得我的方法有用,可以赞我一下的呦 如果你是和我一样安装完Android studio,运行第一个Android程序,发现...
Tomcat 启动报错解决方案 Tomcat 是一个流行的开源 Web 服务器,可以运行 Java 语言编写的 Web 应用程序。然而,在启动 Tomcat 时,偶尔会遇到报错“Address already in use: JVM_Bind <null>:8080”,这意味着端口...
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)") 而此资源是较...
在Java编程中,当你尝试启动一个服务器端应用,如Tomcat,或者任何需要监听特定端口的服务时,可能会遇到`java.net.BindException: Address already in use: JVM_Bind`的异常。这个异常意味着你试图绑定的网络地址和...
在Android Studio中遇到"Unable to load class ‘javax.xml.bind.JAXBException‘"的错误,通常是由于Java运行时环境(JRE)或开发工具包(JDK)与项目的兼容性问题导致的。`javax.xml.bind.JAXBException`是Java的...
在myeclipse中将html文件改成jsp文件时myeclipse卡住;将之前的任务关掉;再打开时多次部署项目的时候报错
c++11引入了std::bind及std::function,实现了函数的存储和绑定,即先将可调用的对象保存起来,在需要的时候再调用。定义了SignalObject信号类和SlotObject槽类,其中信号类中的 std::function(int)> _call就是要...
"Address already in use: JVM_Bind(端口冲突)" 是一个常见的Java错误,它发生在尝试绑定一个已经被其他进程使用的网络端口时。在Java应用程序中,比如使用Jetty这样的服务器,当我们试图启动一个新的服务器实例时...
在编程和系统开发过程中,我们可能会遇到一个常见的错误——"Address already in use: JVM_Bind"。这个错误通常发生在尝试绑定一个已经被占用的网络端口时。本文将深入探讨这个问题,提供解决方案,并从源码角度解析...
一个简单的C#工具入门程序
在本篇文章里小编给大家分享的是关于docker容器调用yum报错的解决办法,有兴趣的朋友们可以参考下。
C++ 11 std::function和std::bind使用详解 C++ 11 中引入了两个重要的功能:std::function 和 std::bind,它们都是基于 C++ 11 的新特性,用于实现函数指针的功能。下面将详细介绍这两个功能的使用和区别。 std::...
Maven坐标:jakarta.xml.bind:jakarta.xml.bind-api:2.3.3; 标签:bind、xml、api、jakarta、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
- **错误提示**:“Address already in use” 或 “Port 22: bind: Address already in use”。 - **原因**:另一个进程占用了SSH服务所需的端口。 - **解决方法**:更改SSH服务的监听端口,例如在 `/etc/ssh/...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
Failed to bind to address(解决方案).md
本文将深入探讨在进行Linux网络编程时,`bind()`函数使用中可能遇到的问题及其解决方案。 1. **端口冲突**:当一个应用程序尝试绑定已经被其他进程占用的端口时,会返回错误。默认情况下,只有root权限的进程才能...
主要介绍了 Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突的相关资料,需要的朋友可以参考下
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装