千家信息网

Flex数据绑定中如何绑定到函数、对象和数组

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了Flex数据绑定中如何绑定到函数、对象和数组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Flex数据绑定1.绑定到
千家信息网最后更新 2026年11月01日Flex数据绑定中如何绑定到函数、对象和数组

这篇文章主要介绍了Flex数据绑定中如何绑定到函数、对象和数组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Flex数据绑定

1.绑定到函数、对象和数组

(1)绑定函数以响应Flex数据绑定事件

可以把使用"不可绑定的参数"的函数作为Flex数据绑定表达式的源。但是,必须有一种办法能够激活这个函数以更新Flex数据绑定的目的属性。
在下面的例子中,使用了[Bindable]元数据标记来指定Felx调用isEnabled()函数以响应myFlagChanged事件。当myFlag的setter方法被调用时,它就发出了一个myFlagChanged事件,这个事件触发任何使用isEnabled()函数作为源的Flex数据绑定。

    

(2)将对象用于Flex数据绑定

当使用对象进行工作时,不得不考虑什么时候定义到这个对象的绑定?或者考虑什么时候定义一个到这个对象属性的绑定?

绑定到对象

当使一个对象成为Flex数据绑定表达式的源时,Flex数据绑定发生在这个对象被更新之时,或者这个对象的引用被更新之时,但不能发生在这个对象的单个(数据)域(feild)被更新之时。
下面的范例中,创建了Object类的子类,这个子类带有两个属性,stringProp和intProp,但没有使这两个属性成为可绑定属性:

packagemyComponents  {  //binding/myComponents/NonBindableObject.as  //Makenoclasspropertiesbindable.  publicclassNonBindableObjectextendsObject{  publicfunctionNonBindableObject(){  super();  }  publicvarstringProp:String="Stringproperty";  publicvarintProp:int=52;  }  }

因为这个类的两个属性不是可绑定属性,当它们被更新时Flex不会发出事件去触发Flex数据绑定。接下来在Flex应用中使用这个类,如下面的范例所示:

          

因为没有使NonBindableObject类的单个数据域(fields)成为可绑定属性,所以应用在两个Text控件的绑定在应用启动时以及在myObj被更新时才会被更新。在编译这个应用时,编译器会输出警告信息,提示Flex数据绑定机制不能检测stringProp和intProp属性的变化。

(3)绑定到对象的属性

为了使对象的属性可绑定,要创建新的类定义,如下面的范例所示:

packagemyComponents  {  //binding/myComponents/BindableObject.as  //Makeallclasspropertiesbindable.  [Bindable]  publicclassBindableObjectextendsObject{  publicfunctionBindableObject(){  super();  }  publicvarstringProp:String="Stringproperty";  publicvarintProp:int=52;  }  }

通过在类定义之前放置[Bindable]元数据标记,就可以使得类中所有public变量、以及所有完全具备setter及getter的public属性成为可绑定的属性。接下来就可以使用stringProp和intProp属性作为Flex数据绑定的源,如下范例所示:

          

(4)在绑定中使用数组

在使用数组进行工作时,比如Array或者ArrayCollection对象,可以把数组作为Flex数据绑定表达式的源或目的。
注意:当使用数组作为绑定源时,应该使用ArrayCollection类型的数组,因为ArrayCollection类在数组或数组元素发生变化时能够发出事件来触发Flex数据绑定。比如,对ArrayCollection.addItem(),ArrayCollection.addItemAt(),ArrayCollection.removeItem(),以及ArrayCollection.removeItemAt()方法的调用都会触发Flex数据绑定。

绑定到数组

通常将数组绑定给Flex控件的dataProvider属性,下面范例说明将数组绑定用于List控
件:

            

这个例子定义了一个ArrayCollection对象,然后将List控件的dataProvider属性设置为对这个ArrayCollection的Flex数据绑定。当修改ArrayCollection对象中的元素,或者修改对ArrayCollection对象的引用,都会触发Flex数据绑定。

绑定到数组中的元素

可以使用数组中的单个元素作为Flex数据绑定源,如下例所示:

       

如果通过方括号语法[]来指定数组元素作为Flex数据绑定表达式的源,那么Flex数据绑定只在应用启动时触发,或者在数组或其引用被更新时触发。当这个数组元素被更新的时候不会触发Flex数据绑定。
但Flex数据绑定表达式中的myAC.getItemAt(0)则会在该数组元素变化时被触发更新。因此,id为text2的Text控件在点击button1时会被更新,而id为text1的Text控件则不会被更新。
当使用数组中的元素作为Flex数据绑定表示的源时,应当在绑定表达式中使用ArrayCollection.getItemAt()方法。

点击button2时将myAC2拷贝给myAC,这会触发对数组元素的所有Flex数据绑定而不论它们是如何实现的。

感谢你能够认真阅读完这篇文章,希望小编分享的"Flex数据绑定中如何绑定到函数、对象和数组"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

数据 数组 对象 属性 更新 元素 函数 事件 控件 表达式 范例 应用 两个 篇文章 面的 单个 方法 时候 变化 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技 互联网是第几次科技革命的成果 广州万易互联网科技有限公司 A股互联网金融科技公司 关于新基建和互联网科技 互联网金融 科技金融 紫鲸互联网科技 朗涯互联网科技 银川新华互联网科技学校地址 中国的互联网科技企业的崛起 受益于互联网科技的高速发展 广州市恰铎互联网科技有限公司 链环科技传统企业怎么转型互联网 朱啸虎曾投资哪些互联网科技企业 中国科技和美国互联网 北京天晋互联网科技有限公司 互联网领先科技成果宣传视频 科技互联网企业在行动 株洲百竞科技的互联网营销顾问 互联网 科技节活动 微视频大赛 高科技互联网 深圳科技互联网 天津摩尔互联网科技 上游互联网科技 汉立互联网科技有限公司联系电话 欧洲十大科技互联网公司 福建科技产业互联网发展 注册互联网科技公司经营范围大全 互联网方面的科技前沿 互联网科技和医药行业
0