`
zyjwy02
  • 浏览: 141211 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Flex学习笔记_09 数据绑定_概念、使用

阅读更多
<script type="text/javascript"></script>

9.1 认识数据绑定

9.1.1 数据绑定的概念

    使用数据绑定时,Flex 会自动把一个对象的数据复制,提供给另一个对象使用,提供数据一方称为数据源对象,使用数据的一方称为目标对象。当数据源对象的数据发生变化时,目标对象的数据会自动更新。
    实质上,绑定的实现也是借助事件机制来完成的,当目标使用了数据绑定,目标对象就会侦听数据源的某一个固定事件。如果数据源改变,就派发事件,通知目标对象更新最新数据。当然这个过程都是由Flex来完成。

    作为绑定的数据源对象,必须支持绑定--对象有派发改变事件的能力。

使用数据绑定的多数情况:
  • 将后台数据(通过Web Service 或 Remoting 方式得到的数据)绑定给控件
  • 把控件数据绑定给后台通信对象,发送给后台服务端
  • 后台返回数据和数据模型 进行绑定
  • 组件或对象属性的数据绑定


9.1.2 如何使用数据绑定

将数据源对象房子大括号{}中,作为目标对象的值就可以了。
backgroundColor="{mColor.value.toString()}"

在{}中也可以使用AS:
text="{(Number(age_txt.text)>= 16)?'成年':'未成年'}"

 

Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">  
  3.     <mx:Style source="style.css" />      
  4.     <mx:ColorPicker id="mColor" x="30" y="30"/>  
  5.     <mx:Canvas styleName="box" id ="box" x="30" y="80" backgroundColor="{mColor.value.toString()}" width="200" height="172">  
  6.     </mx:Canvas>      
  7. </mx:Application>  
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Style source="style.css" />   
    <mx:ColorPicker id="mColor" x="30" y="30"/>
    <mx:Canvas styleName="box" id ="box" x="30" y="80" backgroundColor="{mColor.value.toString()}" width="200" height="172">
    </mx:Canvas>   
</mx:Application>

 
也可以使用函数:
scaleX="{doResize(scale)}"

定义scale 到时候使用了[Bindable]来使它具有绑定功能,[Bindable]是元标签的一种,专门用来定义绑定中的数据源对象,event事件名指当前数据源发生变化时,数据源所在对象派发的事件类型,可选的,默认:propertyChange :
[Bindable]
[Bindabl(event="eventname")]

比如我们定义scale:
[Bindable]
private var scale:Number = 1;

Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">  
  3.     <mx:Style source="style.css" />  
  4.     <mx:Script>  
  5.         <![CDATA[  
  6.             [Bindable]  
  7.             private var scale:Number = 1;  
  8.             internal function doResize(n:Number):Number{  
  9.                 zoom.zoomWidthTo = n;  
  10.                 zoom.play();  
  11.                 return box.scaleX;  
  12.             }  
  13.         ]]>  
  14.     </mx:Script>  
  15.     <mx:Zoom id="zoom" originX="0" originY="0" target="{box}" />  
  16.     <mx:HSlider id="slider" x="120" y="301" change="scale =slider.value" minimum="0" maximum="1"/>  
  17.     <mx:Canvas id="box" styleName="box" x="100" y="56" scaleX="{doResize(scale)}" width="200" height="200">  
  18.     </mx:Canvas>  
  19. </mx:Application>  
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Style source="style.css" />
    <mx:Script>
        <![CDATA[
            [Bindable]
            private var scale:Number = 1;
            internal function doResize(n:Number):Number{
                zoom.zoomWidthTo = n;
                zoom.play();
                return box.scaleX;
            }
        ]]>
    </mx:Script>
    <mx:Zoom id="zoom" originX="0" originY="0" target="{box}" />
    <mx:HSlider id="slider" x="120" y="301" change="scale =slider.value" minimum="0" maximum="1"/>
    <mx:Canvas id="box" styleName="box" x="100" y="56" scaleX="{doResize(scale)}" width="200" height="200">
    </mx:Canvas>
</mx:Application>

 

使用<mx:Binding> 标签来定义数据绑定:
<mx:Binding source="users.user.blogURL" destination="pic.toolTip" />
其中source指定数据源,destination指定目标对象的属性,两者的数据类型必须相同

Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">  
  3.     <mx:Style source="style.css" />  
  4.       
  5.     <mx:Model id="users">  
  6.         <users>  
  7.          <user>  
  8.             <name>Peter Ent</name>  
  9.             <blogURL>http://weblogs.macromedia.com/pent</blogURL>  
  10.             <rss>http://weblogs.macromedia.com/pent/index.xml</rss>  
  11.             <pic>pic_1.png</pic>  
  12.           </user>  
  13.         </users>  
  14.     </mx:Model>  
  15.     <mx:Binding source="users.user.name" destination="name_txt.text" />  
  16.     <mx:Binding source="users.user.blogURL" destination="blog_btn.label" />  
  17.     <mx:Binding source="users.user.rss" destination="rss_btn.label" />  
  18.     <mx:Binding source="users.user.pic" destination="pic.source" />  
  19.       
  20.     <mx:Binding source="users.user.blogURL" destination="pic.toolTip" />  
  21.       
  22.     <mx:Panel styleName="myPanel" x="74" y="78" width="327" height="309" layout="absolute" title="查看信息">  
  23.         <mx:Image id="pic" x="10" y="19" width="277" height="76" scaleContent="true"/>  
  24.         <mx:Label id="name_txt" x="10" y="135" width="154"/>  
  25.         <mx:LinkButton id ="blog_btn" x="10" y="163" width="236" textAlign="left"/>  
  26.         <mx:LinkButton id="rss_btn" x="10" y="195" width="236" textAlign="left"/>  
  27.     </mx:Panel>  
  28. </mx:Application> 
分享到:
评论

相关推荐

    Flex学习笔记_09 数据绑定_概念、使用 - Java&Flex - JavaEye技术网站

    Flex学习笔记_09 数据绑定_概念、使用 - Java&Flex - JavaEye技术网站 希望对爱好有帮助!!

    flex学习笔记 flex学习总结 flex学习教程

    本教程是作者精心编写的Flex学习资料,适合初学者入门,通过图文并茂的方式,帮助读者快速掌握Flex的基本概念和核心技能。 1. **Flex基础**:Flex提供了MXML和ActionScript两种编程方式。MXML是一种声明式语言,...

    Flex学习笔记.rar

    这份“Flex学习笔记”应该是一个全面的引导,帮助初学者理解Flex的基本概念和技术,通过实例来加深理解,从而快速进入Flex开发的世界。对于想要进一步提升技能的开发者来说,这将是一个很好的起点。

    Flex学习笔记1

    Flex学习笔记1 - 容器布局对象状态的切换和数据绑定 在 Flex 应用程序中,容器布局对象状态的切换是非常常见的需求。例如,在购物车应用程序中,我们可能需要在不同的状态之间切换,例如从商品浏览状态到购物车状态...

    flex学习笔记,技巧学习

    根据提供的信息,我们可以总结出以下关于Flex学习笔记中的关键技术知识点...综上所述,这些Flex学习笔记涵盖了从基本样式设置到复杂的数据处理与展示等多个方面。对于初学者来说,这些都是非常实用且必须掌握的知识点。

    Flex学习笔记

    这篇“Flex学习笔记”可能是作者在深入研究Flex技术过程中整理的心得体会和实践案例,结合了《Flex3权威指南》这本书的内容。 在Flex中,ActionScript是核心编程语言,它是基于ECMAScript的一个版本,专门针对富...

    flex 学习详细笔记

    本笔记将深入探讨Flex的基本概念、架构、组件、布局管理器以及事件处理机制,帮助初学者全面理解并掌握Flex开发。 1. **Flex简介**:Flex是一种开放源代码的框架,主要用于创建交互式的、基于Web的用户界面。它允许...

    Flex学习笔记-由浅入深

    Flex是Adobe公司推出的一种用于构建富互联网...随着对Flex的深入学习,开发者将掌握更多高级特性,如数据绑定、动画效果、组件自定义以及与后端服务器的深度集成等,从而能够创建出更复杂、功能丰富的富互联网应用。

    flex学习笔记

    本篇“Flex学习笔记”将带你深入理解Flex的核心概念、架构以及如何使用它来构建高效的应用程序。 一、Flex基础 1. MXML与ActionScript:Flex主要使用MXML(Markup Language for Flex)和ActionScript两种语言进行...

    FLEX学习笔记

    通过阅读“FLEX学习笔记”的博客文章,你可以期望找到更多关于这些概念的实际应用和开发者在学习过程中遇到的问题及解决方案。而解压并研究"MyDemo"项目,则能让你看到Flex项目的实际结构,帮助你在实践中学习和理解...

    Flex学习笔记,入门材料

    ### Flex学习笔记:ActionScript与Flex开发入门 #### 1. ActionScript核心概念 ##### 1.1 类和对象(Class and Object) 类是对象的模板,定义了一组具有相同特性和行为的对象的共同属性和方法。在ActionScript中...

    flex4.5学习笔记

    ### Flex4.5学习笔记知识点总结 #### 一、Flex基础——布局 **知识点1:Flex布局** - **垂直布局** (`s:VerticalLayout`): 控件垂直排列。 - **水平布局** (`s:HorizontalLayout`): 控件水平排列。 - **平铺布局**...

    《Flex企业应用开发实战》学习笔记之Flex企业应用开发基础[收集].pdf

    《Flex企业应用开发实战》的学习笔记主要探讨了Flex在企业应用开发中的基础知识,包括MXML语言、客户端状态保持、客户端MVC模式以及数据绑定技术。 2.1 MXML语言是Flex应用开发的核心部分,它是一种XML标记语言,与...

    Flex 开发学习笔记4 - 应用分页列表组件

    Flex开发学习笔记4主要关注的是如何在Flex应用中实现分页列表组件,这对于构建大型数据展示界面至关重要。Flex是一个开源的、基于ActionScript的框架,用于创建富互联网应用程序(RIA)。在这里,我们不仅会探讨Flex...

    Flex 开发学习笔记6.1 - 创建 Flex Library Project

    Flex开发学习笔记6.1主要聚焦于创建Flex Library Project,这是一种在Adobe Flex开发环境中构建可重用组件的方式。Flex Library Project允许开发者创建自定义组件,这些组件可以被多个应用程序共享,提高了代码复用...

    flex学习小记录

    【描述】:“NULL”意味着没有提供具体的描述信息,但根据标题,我们可以推断这篇内容可能涵盖了Flex的基本概念、组件使用、布局管理、数据绑定、事件处理以及与后端服务的交互等方面。博主可能在iteye博客平台上...

    Flex MVC框架 Cairngorm 学习笔记

    由于它是Bindable的,因此当模型中的数据发生变化时,与之绑定的视图能够自动更新,实现了数据的实时同步。 2. **Service Locator**: Service Locator是用于定位服务和数据访问对象的组件,它定义了与数据源(如...

    flex学习资源和DEMO例子

    8. **学习资源**:此资源包不仅包含示例代码,还可能包含教程、文档或笔记,帮助学习者理解Flex的基本概念、语法和最佳实践。 9. **交互交流**:作者强调了资源经过测试,且希望学习者能相互交流,这意味着可能存在...

Global site tag (gtag.js) - Google Analytics