绑定也疯狂第二版.pdfVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
绑定也疯狂 通过这本书你能够透彻了解Flex 内部绑定实现的原理,通过了解原理你可以知道工作中如何正确的 使用绑定,要避免哪些陷阱。而后我们在了解原理的基础上进行扩展,讲述一些平时认为不能实现绑定的 解决方案以及某些你从未听说过的绑定方式。最后我们将绑定提升到应用程序架构的层次来提高你的开发 效率,让你知道绑定不仅仅是一个技巧,而是一种能够简化思维的设计模式。 绑定的概念 什么是绑定? 绑定是直接被Flex框架支持的一种同步机制。绑定由3 部分组成:绑定源、观察机制、目标。当源 发生更改时,源广播更改事件,通过观察机制执行代码更新目标。如图: 绑定源发出更改事件 观察机制收到事件执行代码 目标被更新 这个过程可以用事件完成,但使用绑定的开发效率要高于纯事件。原因如下: 1. 绑定机制直接被编译器支持,当一个源使用元标签[Bindable]注册后,编译器会自动生成绑定 代码,这些代码涉及到观察绑定源变化并且更改绑定目标整个过程。 2. 内置观察器能能够处理绑定链等复杂的逻辑,Flex组件和高级数据集合预置了绑定功能。 3. mxml 直接支持绑定,能够在更高级别生成代码,以致不用书写一行as 代码就实现了绑定。 绑定机制虽然提供便利,但不缺乏灵活性,绑定源支持多种数据类型,事件可以选择自动派发也可以 选择手动派发,内置观察器有多个并且运行时可以进行干预;目标可以指定也可以不指定。绑定机制属于 Flex框架中,不能用于Flash工程,纯as 工程要需导入framework.swc。 绑定的本质 绑定是一个框架,其本质是事件,广义的绑定应理解为“建立绑定源变化的观察机制”,其手段可以 创建观察器、动态函数、绑定链或绑定树实现寄生,也可以是直接使用事件或通过代理对象实现。绑定的 追求的是通过重用提高编程效率,绑定机制创建了一个同步概念并且得到sdk支持,我们可以重新设计工 程蓝图,以绑定为基础简化项目架构,在实际工作中绑定的手段也是多样化的,但绑定的原理是不变的, 创建绑定的方式有多种,下面我们来看看如果创建绑定。 创建绑定 可以使用mxml 创建绑定也可以使用as3 创建绑定,mxml 最终会编译为as3 代码,使用as3 创建绑 定能够有利于了解内部工作机制,还能通过原理灵活进行扩充,因此本章节重点讲述使用as3 创建绑定。 使用as3 创建绑定 抛开绑定带来的令人眼花缭乱形式上的表现,从问题的本质出发,我们使用as3 来创建一个绑定,来 看看从源的变化到目标被更新这一过程是如何运转的,请看下面的代码: ?xml version=1.0 encoding=utf-8? s:Application xmlns:fx=/mxml/2009 xmlns:s=library://n /flex/spark xmlns:mx=library:///flex/mx minWidth=9 55 minHeight=600 s:layout s:BasicLayout/ /s:layout fx:Declarations !-- 将非可视元素(例如服务、值对象)放在此处 -- /fx:Declarations fx:Script ![CDATA[ import mx.events.PropertyChangeEvent; import mx.binding.utils.ChangeWatcher; [Bindable] public var a:Number; private var watcher:ChangeWatcher=ChangeWatcher.watch(this,a,watc hFun); private function watchFun(event:PropertyChangeEvent):void { myText.text=String(event.newValue); } public

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档