`
isiqi
  • 浏览: 16694445 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

flex 数据绑定之理解

阅读更多

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL /> <w:BalanceSingleByteDoubleByteWidth /> <w:DoNotLeaveBackslashAlone /> <w:ULTrailSpace /> <w:DoNotExpandShiftReturn /> <w:AdjustLineHeightInTable /> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]-->

之前写了《 flex 事件之理解》和《 flex meta tag 之理解》,本想是为写本文 flex 数据绑定之理解做铺垫的,谁知网上已有 flex 数据绑定之理解很好的文章,如下:

http://www.cnblogs.com/nianshi/archive/2010/05/19/1739407.html FLEX 数据绑定 (1)

http://www.cnblogs.com/nianshi/archive/2010/05/19/1739409.html FLEX 数据绑定 (2)

http://www.cnblogs.com/nianshi/archive/2010/05/19/1739411.html FLEX 数据绑定 (3)

因此,已无再详片大论 flex 绑定理解之需要,但是鉴于上述 3 篇文章稍显混论,看起来不是那么通俗易懂,为此,我简单的补充了一个 demo ,并且作简单归纳总结。

<!-- [if !supportLists]-->1、 <!-- [endif]-->flex 绑定通常有 3 中实现方式,即 FLEX 数据绑定 (1) 所述的 {} 绑定、 fx binding as 代码实现 ( BindingUtils , ChangeWatcher );

<!-- [if !supportLists]-->2、 <!-- [endif]-->flex 绑定分单、双向绑定,默认情况下都是单向绑定;

<!-- [if !supportLists]-->3、 <!-- [endif]-->flex 绑定最常见的编写方式就是 [Bingable] 元标签及 {} 的引用;

<!-- [if !supportLists]-->4、 <!-- [endif]-->flex 绑定基于事件,只不过 [Bingable] 等同于 [Bindable(event="propertyChange")] 而已;

<!-- [if !supportLists]-->5、 <!-- [endif]-->flex 绑定可以基于简单的变量、也可基于复杂的对象、方法和事件;

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

下述为 flex 3 种绑定方式实现的一个简单 demo

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx=" http://ns.adobe.com/mxml/2009 "

xmlns:s=" library://ns.adobe.com/flex/spark "

xmlns:mx=" library://ns.adobe.com/flex/mx " minWidth=" 955 " minHeight=" 600 "

creationComplete="initWatcher()" >

<s:layout>

<s:BasicLayout/>

</s:layout>

<fx:Declarations>

<!-- 将非可视元素(例如服务、值对象)放在此处 -->

</fx:Declarations>

<fx:Script>

<![CDATA[

import mx.binding.utils.BindingUtils;

import mx.binding.utils.ChangeWatcher ;

import mx.events.FlexEvent;

public function updateMyString(val:String): void {

p3_target.text = val.toUpperCase();

}

public function mySetterBinding(event:FlexEvent): void {

var watcherSetter:ChangeWatcher =

BindingUtils.bindSetter(updateMyString, p3_source, "text" );

}

public function initWatcher(): void {

ChangeWatcher .watch(p4_source, "text" , watcherListener);

}

public function watcherListener(event:Event): void {

p4_target.text=p4_source.text.toUpperCase();

}

]]>

</fx:Script>

<fx:Binding source=" p2_source.text " destination=" p2_target.text " />

<s:Panel x=" 9 " y=" 6 " width=" 462 " height=" 70 " title=" 大括号绑定 " id=" panel1 " >

<s:Label x=" 6 " y=" 10 " text=" source: " />

<mx:TextInput id=" p1_source " text=" Enter text here " x=" 50 " y=" 4 " />

<s:Label x=" 259 " y=" 10 " text=" target: " />

<mx:Text id=" p1_target " text=" { p1_source.text.toUpperCase() } " x=" 307 " y=" 4 " />

</s:Panel>

<s:Panel x=" 9 " y=" 84 " width=" 462 " height=" 98 " title=" mx:binding " id=" panel2 " >

<s:Label x=" 6 " y=" 10 " text=" source: " />

<mx:TextInput id=" p2_source " text=" Enter text here " x=" 50 " y=" 4 " />

<s:Label x=" 259 " y=" 10 " text=" target: " />

<mx:Text id=" p2_target " text="" x=" 307 " y=" 4 " />

<s:Label x=" 7 " y=" 43 " text=" fx:binding 等同于 BindingUtils.bindProperty(p2_target,'text',p2_source,'text'); " />

</s:Panel>

<s:Panel x=" 9 " y=" 190 " width=" 462 " height=" 70 " title=" actionscript binding bindSetter " id=" panel3 " >

<s:Label x=" 6 " y=" 10 " text=" source: " />

<mx:TextInput id=" p3_source " text=" Enter text here " x=" 50 " y=" 4 " />

<s:Label x=" 259 " y=" 10 " text=" target: " />

<mx:Text id=" p3_target " text="" x=" 307 " y=" 4 " initialize="mySetterBinding(event);" />

</s:Panel>

<s:Panel x=" 9 " y=" 272 " width=" 462 " height=" 70 " title=" actionscript binding changewatcher " id=" panel0 " >

<s:Label x=" 6 " y=" 10 " text=" source: " />

<mx:TextInput id=" p4_source " text=" Enter text here " x=" 50 " y=" 4 " />

<s:Label x=" 259 " y=" 10 " text=" target: " />

<mx:Text id=" p4_target " text="" x=" 307 " y=" 4 " />

</s:Panel>

</s:Application>

分享到:
评论

相关推荐

    flex数据绑定的原理

    6. **性能优化**:Flex数据绑定系统还包含了一些性能优化,比如变化传播的限制和缓存机制,以避免不必要的更新和提高效率。 7. **表达式绑定**:除了简单的变量绑定,Flex还支持复杂的表达式绑定,可以连接多个数据...

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

    通过阅读《FLEX数据绑定专题》,开发者将能深入理解Flex数据绑定的工作原理,提高在Flex项目中的开发效率,创建出更加动态和响应式的用户界面。这份资料对于正在学习或已经在使用Flex的开发者来说,无疑是一份极具...

    flex数据绑定 pdf

    Flex数据绑定是Adobe Flex框架中的核心特性之一,它允许开发者将UI组件的显示状态与应用程序的数据模型紧密关联,实现数据的动态更新。这份名为“FLEX数据绑定专题”的PDF文档,很可能深入探讨了这一主题,提供了...

    FLEX 数据绑定专题一(转)

    在提供的压缩包文件"DataBindLab"中,可能包含了相关的示例代码或实验,帮助读者更好地理解和实践FLEX数据绑定。通过实际操作和分析这些实验,可以深化对数据绑定的理解,并将其应用到自己的项目中。建议读者结合...

    flex数据绑定

    数据绑定是Flex和Adobe AIR应用程序开发中的关键概念之一,其主要目的是实现不同对象之间的数据传输与同步更新。通过数据绑定,开发者能够轻松地在用户界面元素(如文本框、列表等)与后端数据模型之间建立连接。...

    Flex数据绑定[收集].pdf

    Flex数据绑定是软件开发中Adobe Flex或Adobe AIR应用程序的核心特性,它允许数据在不同对象之间自动同步。数据绑定简化了用户界面(UI)组件与数据源之间的交互,减少了手动更新的需要。然而,如果不理解其工作原理...

    Flex 数据绑定

    在本文中,我们将深入探讨Flex数据绑定的原理、使用方式以及它在实际开发中的应用。 1. 数据绑定概念 数据绑定是将UI组件(视图)的状态与应用程序数据(模型)关联起来的技术。在Flex中,数据绑定是一种声明性编程...

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

    数据绑定是Flex框架的核心特性之一,它允许开发者将界面元素的属性(如文本框的文本内容)直接绑定到应用程序的数据源,当数据源发生变化时,UI会自动更新。这一特性极大地简化了应用的开发,减少了手动同步数据的...

    flex datagrid分页 动态绑定数据源

    本篇文章将深入探讨“flex datagrid分页动态绑定数据源”的相关知识点。 首先,让我们理解Flex Datagrid的基本概念。Flex Datagrid是一个灵活的数据呈现控件,能够处理各种数据源,包括ArrayCollection、...

    flex数据交互_方式

    数据绑定是Flex数据交互的核心机制之一,它允许视图组件(如文本框、列表、图表等)自动同步到模型中的数据源。Flex提供了两种类型的数据绑定:单向绑定和双向绑定。单向绑定意味着数据只能从模型流向视图,而双向...

    flex [bindadle]标签数据绑定经典案例

    在探讨“Flex [Bindable]标签数据绑定经典案例”这一主题时,我们首先需要理解Flex框架以及数据绑定在其中的应用。Flex是一种用于构建跨平台富互联网应用程序(RIA)的软件框架,由Adobe Systems开发。它使用MXML...

    flex组件之数据可视化组件实例源码

    总之,"flex组件之数据可视化组件实例源码"是一个深入学习Flex数据可视化的好资源。它涵盖了多种图表类型和关键功能,通过实际代码帮助开发者掌握Flex中数据展示的核心技术。通过研究和实践这些示例,你将能更有效地...

    flex 4(flash builder 4)数据绑定教程(中文版)

    ### Flex 4(Flash Builder 4)数据绑定教程(中文版) ...通过上述内容的学习,开发者可以更好地理解如何在Flex 4(Flash Builder 4)中实现高效的数据绑定,从而构建出更加完善和实用的应用程序。

    FLEX数据传输与交互

    1. 数据绑定:FLEX中的数据绑定是其强大功能之一,它允许UI组件的属性自动反映模型数据的变化,反之亦然。这简化了UI与数据模型之间的同步工作。 2. Model-View-Controller(MVC):FLEX鼓励使用MVC设计模式,分离...

    FLEX简单的入门快速总结

    总之,Flex入门需要掌握数据绑定的概念,学会使用HTTPService进行服务器通信,理解如何创建和处理自定义事件。同时,熟悉MXML和ActionScript的结合使用,以及Flex组件库的运用,也是成为Flex开发者的必备技能。通过...

    flex实现数据表格。

    1. **数据绑定**:Datagrid可以直接与数据提供者进行绑定,数据提供者可以是Array、ArrayCollection或其他支持ICollectionView接口的数据源。这意味着你可以动态地更新数据源,Datagrid会自动反映这些更改。 2. **...

    flex 文档以及后台数据交互详解

    数据绑定是Flex的一个重要特性,它使得UI组件可以自动更新以反映数据源的变化。 5. **RemoteObject**:此组件允许直接调用服务器上的远程方法,就像调用本地方法一样,极大地简化了客户端和服务器间的通信。 在...

    flex操作数据的实例

    1. **数据绑定**:Flex中的数据绑定是连接UI组件和应用程序数据模型的关键机制。通过数据绑定,UI组件的属性可以自动反映模型数据的变化,反之亦然。例如,你可以将一个TextInput组件的text属性绑定到一个变量,当...

    Flex 弹出窗口的数据传输

    这个场景中,我们关注的是“Flex 弹出窗口的数据传输”,这涉及到Flex中的组件交互以及数据绑定技术。 首先,`ListTitleWindow.mxml`可能是主应用窗口,它可能包含一个列表组件,用于展示数据。在Flex中,`List`...

Global site tag (gtag.js) - Google Analytics