as3.0学习笔记之绑定与组件生命周期

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学习笔记

1.Flex数据绑定的四种方式—2013.5.9

一、"{}"绑定表达式

Flex开发中,"{}"绑定表达式的应用是最为常见的,简单、方便。好比 中的"<%%>"一样的功效。这里我就简单介绍下,在Flex下怎么使用"{}"绑定表达式来绑定数据。如有这样一个简单的需求,我们定义一个变量,通过"{}"绑定表达式将变量的值绑定到文本框或是按扭等类似的UI组件上,变量定义如下:

简洁、简单、方便且适用。OK,已经学到手了,那下面继续看看另一种绑定使用方式--绑定方法返回值。例如需要将一个方法的返回值通过"{}"绑定表达式进行Flex数据绑定,让其在UI组件上呈现该怎么做呢?如下方法定义:

Private function BindText():String{Return “OK” ;}

如上便完成了对方法的绑定,既将BindText()方法的值绑定在了Label组件上。

二、[Bindable]绑定符号

[Bindable]绑定符号在上面就已经出现过了,他的使用和作用也很容易掌握。如上示例,我们的目的是将定义的变量值绑定在UI组件上,如果要实现这个功能,直接将定义的变量通过"{}"绑定表达式进行Flex数据绑定是不能完成功能的,我们必须为所定义的变量标记[Bindable]。在Flex中,只有标记有[Bindable]的数据源才能进行Flex数据绑定(函数除外,上面示例中也证实了这一点),当然也可以是其他的数据源(xml,数据库,文件等不同地方不同类型的数据源)。

1、[Bindable]标签用于函数时,只能在setter和getter方式定义的函数前使用,这种绑定称之为函数级绑定。

2、[Bindable]标签用于公有类时,这个类的所有公共变量,setter和getter方式定义的函数都可以用于绑定。这种绑定称为对象级绑定。

三、标签

标签也是使用非常频繁的Flex数据绑定方式。到底怎么个用法呢?下面以两个小示例使用不同的数据源来进行Flex数据绑定演示。首先用

标签定义一个数据源(标签就相当于的定义一个临时数据。

ActionScript3.0

张三

FlashCS3

李四

如上定义的数据源,通过标签来进行Flex数据绑定是很简单的,如下代码段:

txtName.text"/>

txtAuthor.text"/>

四、BindingUtils与动态绑定

在Flex数据绑定中,动态绑定主要是通过BindingUtils类提供的两个静态方法来实现。该类位于包mx.binding.utils下,它提供了bindProperty()和bindSetter()两个静态方法来实现数据的动态绑定。

bindProperty()方法根据名称就可以看出大概意思,绑定属性。那实际开发中我们应该怎么应用他呢?其实很简单,一句话概括就是:将xx的YY属性绑定到AA的BB属性。更清楚的理解这句话的意思见下面代码片段:BindingUtils.bindProperty(nameText,"text",btn,"label");

bindSetter()方法的使用也很简单,该Flex数据绑定方法绑定数据需要与setter 类似的方法结合,将外部传递进去的参数进行方法委托实现数据的动态绑定,拿上面将按扭显示值绑定到文本输入组件的值的示例来说,只需要定义一个setter

的方法,该bindProperty()方法为bindSetter()方法既可,详细见下面代码片段:BindingUtils.bindSetter(bindText,btn,"label");

Private functionbindText(text:String):void { Text.text=text;}

2、Flex Application初始化顺序—2013.5.14

Preinitialize

在所有的初始化之前触发,没有子组件的定义,但是可以引用组件的变量Initialize

当所有子组件生成完成后触发,在这个时间点还没有组件被渲染出来creationComplete

组件定义完成并已经在显示列表

applicationComplete

所有的组件初始化完成并显示

通常, Application对象创建时, 发生如下事件:

1. 实例化Application对象

2. 初始化Application.systemManager

3. Application在初始化过程之前, 派发预初始化事件.

4. 调用createChild(). 此时, 所有应用组件被创建, 所有组件的createChild()被调用.

5. Application派发初始化事件, 表明所有的组件初始化完毕.

6. 派发creationComplete事件

7. Application对象添加到显示列表中

8. 派发applicationComplete事件

相关文档
最新文档