`
xo_tobacoo
  • 浏览: 390920 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

flex类的双向绑定

阅读更多

1)官方的使用方法:使用[bindable]和@前缀.

2)报错:

class is not an IEventDispatche

解决如下:

function resultHandler(result:Array) {
   for(var i:String in result) result[i] = new ObjectProxy(result[i]);
   targetArrayCollection = new ArrayCollection(result);
}

 

产生原因如下,大意是使用AMF远程访问时会产生此问题。

This problem occurs frequently when transferring complex objects using AMF
when the object returned from the server contains an array or array
collection of more objects.
 
One symptom of this problem is that it occurs after converting the data
request from an HTTPService call to a Remote Object call.

It turns out that Flex does not handle data returned from the AMF data
service in quite the same way as HTTPService and WebService results. With
these two later services Flex will automatically wrap Arrays in
ArrayCollection and Objects in ObjectProxy wrappers so binding will work. 

The solution is to do this same thing manually, with code similar to the
following:
 

 

3)自定义双向绑定,出自一日本人:

   1. package cn.sloppy
   2. {
   3.     import flash.events.Event;
   4.     import mx.binding.utils.ChangeWatcher;
   5.     public class TwoWayBinding
   6.     {
   7.         public static function create(src1:Object, prop1:String, src2:Object, prop2:String):void
   8.         {
   9.             var flag:Boolean = false;
  10.  
  11.             ChangeWatcher.watch(src1, prop1, function(event:Event):void
  12.             {
  13.                 if(!flag)
  14.                 {
  15.                     flag = true;
  16.                     src2[prop2] = src1[prop1];
  17.                     flag = false;
  18.                 }
  19.             });
  20.  
  21.             ChangeWatcher.watch(src2, prop2, function(event:Event):void
  22.             {
  23.                 if(!flag)
  24.                 {
  25.                     flag = true;
  26.                     src1[prop1] = src2[prop2];
  27.                     flag = false;
  28.                 }
  29.             });
  30.         }
  31.     }
  32. }

 

调用如下:

   1. <?xml version="1.0" encoding="utf-8"?>
   2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" layout="absolute">
   3.     <mx:Script>
   4.         <![CDATA[
   5.             import cn.sloppy.User;
   6.             import mx.binding.utils.ChangeWatcher;
   7.             import mx.controls.Alert;
   8.             import cn.sloppy.TwoWayBinding;
   9.             [Bindable]
  10.             private var user:User;
  11.             private function init():void{
  12.                 user = new User();
  13.                 TwoWayBinding.create(myText,"text",user,"name");
  14.             }
  15.             private function showUserNameHandler():void{
  16.                 Alert.show(user.name);
  17.             }
  18.         ]]>
  19.     </mx:Script>
  20.     <mx:TextInput  text="{user.name}" id="myText" x="118" y="31">
  21.        
  22.     </mx:TextInput>
  23.     <mx:Button x="118" y="77" click="showUserNameHandler()" label="Button"/>
  24. </mx:Application>

 
0
1
分享到:
评论

相关推荐

    flex数据绑定的原理

    5. **双向数据绑定**:Flex不仅支持单向数据绑定(从数据模型到UI),还支持双向数据绑定。这意味着UI组件的改变不仅能更新数据源,数据源的更新也能反映回UI。 6. **性能优化**:Flex数据绑定系统还包含了一些性能...

    FLEX资源——FLEX数据绑定专题(中文PDF)

    3. **双向数据绑定**:双向数据绑定使得UI组件的改变可以立即反映到数据模型中,反之亦然。这对于实现动态表单和实时更新的界面特别有用。 4. **事件驱动的数据绑定**:当数据模型发生变化时,Flex会触发相应的事件...

    Flex Bind数据绑定实例代码

    Flex Bind数据绑定是Adobe Flex应用程序开发中的核心特性,它允许开发者在用户...在实际项目中,根据需求选择合适的绑定方式,如单向绑定、双向绑定,结合转换函数和事件处理,能有效提升应用的用户体验和开发效率。

    Flex初级数据绑定代码

    ### Flex初级数据绑定代码解析 #### 一、概述 本文将详细介绍一个Flex应用程序中的...未来在更复杂的项目中,可以进一步探索更多高级的数据绑定技巧,如双向绑定、条件绑定等,以提高应用程序的灵活性和可维护性。

    flex数据绑定 pdf

    1. **基本数据绑定**:讲解如何设置单向和双向数据绑定,以及它们在不同场景下的应用。 2. **表达式和转换器**:可能详细阐述了如何在绑定表达式中使用函数和运算符,以及如何通过转换器自定义数据的显示方式。 3....

    FLEX数据绑定四种方式

    `&lt;mx:Binding&gt;`标签提供了一种更为灵活的数据绑定方式,它可以定义更复杂的绑定逻辑,包括双向绑定等高级功能。 **使用方法** 假设有一个名为`sourceVar`的变量和一个名为`targetLabel`的Label组件,可以使用`...

    FLEX数据绑定专题

    例如,通过使用Bindable元标签或Bindable类修饰符,可以实现输入控件(如TextInput)与数据模型间的双向绑定: ```mxml ``` 在Flex中,数据绑定是提高开发效率、简化代码的关键特性。结合Java后端,开发者可以...

    Flex 数据绑定

    Flex的数据绑定默认为单向,但可以通过`&lt;mx:TwoWayBinding&gt;`标签或`Binding`类的`sourceUpdateTarget`参数实现双向绑定。这样,不仅模型变更会更新视图,视图的变更也会反向更新模型。 5. 数据转换 有时,模型数据...

    FLex 物品分类游戏

    3. **数据绑定**:Flex支持双向数据绑定,允许UI组件的状态与应用程序数据模型保持同步。这在更新游戏状态和反馈用户操作时非常有用。 4. **动画效果**:Flex可以利用Tween类和Timeline类实现平滑的动画效果,比如...

    flex数据绑定

    例如,`&lt;s:TextInput bindable="true" text="{myData}" /&gt;`是单向绑定,而`&lt;s:FormElement label="Name" id="nameField" data="{myData}" /&gt;`是双向绑定,因为`FormElement`会自动处理用户输入的更新。 4. 表达式与...

    FLEX 数据绑定专题一(转)

    2. 双向数据绑定:双向数据绑定允许数据在模型和视图之间自由流动。当视图中的组件(如文本框)的值改变时,模型也会同步更新,反之亦然。 数据绑定的工作原理: 在FLEX中,数据绑定使用Observer模式实现。每个绑定...

    flex企业应用开发笔记-数据绑定

    Flex提供了`&lt;mx:Form&gt;`组件和`&lt;mx:FormItem&gt;`的`data`属性支持双向绑定。 3. **事件驱动的数据绑定**:在某些情况下,数据变化可能不是立即触发的,而是基于特定事件,如按钮点击。这时,可以使用`&lt;mx:Binding&gt;`...

    flex 数据绑定 dataGrid.rar

    3. **双向绑定**:双向数据绑定允许数据在源对象和目标对象之间流动。常见于输入控件,如文本框,当用户输入时,数据会自动更新到源对象。 4. **表达式语法**:`&lt;s:property attribute="{sourceProperty}" /&gt;`,...

    flex4-binding-custom-Class.rar_flex_flex4

    例如,可以将输入框的文本与自定义类的属性双向绑定: ```mxml 双向绑定(customInstance.myProperty)}"/&gt; ``` 使用`&lt;s:BidirectionalBinding&gt;`或`&lt;mx:TwoWayBinding&gt;`可以实现双向绑定,但在这里,我们使用了...

    记事万年历flex源码

    4. **数据绑定**:Flex支持双向数据绑定,使得视图和模型之间的数据更新能够自动同步,简化了代码编写。 5. **事件驱动编程**:用户与界面的交互通常由事件触发,Flex提供了完善的事件处理机制,使得响应用户操作变...

    flex 官方文档 中文教程

    通过双向数据绑定,用户界面的更改会立即反映到数据模型,反之亦然。 7. **事件处理** Flex中的事件模型允许开发者响应用户的操作,如点击按钮、选择列表项等。事件处理器可以用MXML或ActionScript编写,增强了...

    flex数据交互_方式

    Flex提供了两种类型的数据绑定:单向绑定和双向绑定。单向绑定意味着数据只能从模型流向视图,而双向绑定则允许数据在模型和视图之间双向流动,使得数据更新更加灵活和实时。 例如,在一个简单的Flex应用程序中,一...

    基于Blazeds的flex和java双向通信

    这些组件可以绑定到ActionScript类,使得代码更加清晰和易于维护。 5. **Java服务端的编程** 在Java端,可以通过Spring框架来创建和管理服务,Blazeds会自动检测并暴露这些服务。通过定义`@Service`注解的Java类和...

    flex例子.flex源程序

    6. **数据绑定**: Flex支持双向数据绑定,使得视图和模型之间的同步变得简单,减少手动更新的工作量。 7. **事件处理**: 通过监听和处理事件,你可以响应用户的交互,实现动态和响应式的应用程序。 8. **Services ...

Global site tag (gtag.js) - Google Analytics