首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex 四 数据绑定

2012-10-21 
Flex 4 数据绑定?1 Object和ObjectProxy在Binding时的区别??[Bindable]public var userObject:Objectnew

Flex 4 数据绑定

?

1 Object和ObjectProxy在Binding时的区别

?

?

[Bindable]public var userObject:Object=new Object();[Bindable]public var userProxy:ObjectProxy=new ObjectProxy();
?

?

<mx:FormItem label="Object">     <s:TextInput text="@{userObject.name}"/></mx:FormItem><mx:FormItem label="ObjectProxy">     <s:TextInput text="@{userProxy.name}"/></mx:FormItem>
?

?

会产生运行时warning

?

?

package org.swflash.model{ public class Account { public function Account(name:String) { this.name = name; } public var name:String; }}?

?

?

[Bindable]public var account:Account = new Account();<mx:FormItem label="Account">      <s:TextInput text="@{account.name}"/></mx:FormItem>

?

?在项目编译时报下面警告:

?

?

[Bindable]public class Account{ ...}?

?

如果取消[Bindable]public var account:Account = new Account();前面的[Bindable]标签,则会产生如下的编译时warning

?

[Bindable]public var userObject:Object={"name":"swflash"};[Bindable]public var userProxy:ObjectProxy=new ObjectProxy({"name":"swflash"});[Bindable]public var account:Account = new Account("swflash");?

?

?

1)双向绑定代码如下:

?

private function userBidirectionalBinding():void{{    trace("Object.name:"+userObject.name);    trace("ObjectProxy.name:"+userProxy.name);    trace("Account.name:"+account.name);}
?

?

?

?

更改输入的值为swf后,控制台输出如下:

?

private function userBinding():void{ trace("Object.name:"+userObject.name); trace("ObjectProxy.name:"+userProxy.name); trace("Account.name:"+account.name); userObject.name = objNameInput.text; proxyNameInput.name = proxyNameInput.text; account.name = accountNameInput.text; trace("Object.name:"+userObject.name); trace("ObjectProxy.name:"+userProxy.name); trace("Account.name:"+account.name);}?

?

注意,需要取消text="@{account.name}"中的@

?

更改输入的值为swflasha后,控制台输出如下:

?

?写道Object.name:swflasha
ObjectProxy.name:swflash
Account.name:swflasha
Object.name:swflasha
ObjectProxy.name:swflash
Account.name:swflasha?

?

可见单向绑定在UI更改的情况下,ObjectProxy的数据感应不到更改。

?

小结:使用双向绑定简洁可靠,推荐使用。

?

热点排行