14.3.1. 问题我想在两个源和目标间做相互间的数据绑定。14.3.2. 解决办法在两个控件间同时使用数据绑定。14.3.3. 讨论在一组的数据绑定的控件间,两个组件彼此同时扮演了源和目标的角色。Flex 框架支持相互间的数据绑定,且不会导致一个死循环。请看例子:+展开-XMLmx:VBoxxmlns:mx="http://www.adobe.com/2006/mxml"layout="vertical"mx:Labelt..
14.2.1. 问题我想使用一个函数做为数据源绑定到一个属性的值上。14.2.2. 解决办法在一个组件的定义时使用花括号进行绑定,传递一个绑定的属性或者一个基于绑定事件从而能被调用的函数做为函数的参数值来实现。14.2.3. 讨论通过源数据来对目标数据进行更新和同步,是一种快速且简便的方法。当使用属性值做为绑定的数据源时,那么只能绑定在同一种..
14.1.1 问题我需要绑定一个对象的属性到另外一个对象中去。14.1.2 解决办法在MXML 组件中使用{}标记或者mx:Binding标记。14.1.3 讨论当你声明一个对象的属性到绑定到另外一个对象的属性,一个事件通知从源对象到目标对象则进行了更新的分发了。内部,则将该属性复制到目标属性的变量。为了绑定一个在MXML中定义的变量,你可以使用{}和mx:Binding..
Flex 为基于组件的应用程序提供了一种健全的架构模式,在这个强大的框架里,是一个基于事件的系统,在这个事件系统中通过数据绑定,可以通过其它的对象来修改另外一个对象的内部的属性值。数据绑定使得在应用程序中不同的层间传递数据的变得简单和方便,通过将源属性与目标属性进行关联来实现。当源属性的值有更新时,会产生一个事件来通知目的属..
13.12.1. 问题我的应用程序在多个位置有多个数据对象,但需要确保所有对象的都分配有唯一的ID 属性,以便用于测试对象之间的平等并确定他们是否表示相同的数据片段。13.12.2. 解决办法你的数据可实现IUID 接口,使用mx.core.UIDUtil.createUID 方法给对象生成新的唯一的id。13.12.3. 讨论在有些情况下是非常有用的,比如使用Adobe LiveCycle mes..
13.11.1. 问题我需要拷贝索引数组的所有数据项或对象到新对象上。13.11.2. 解决办法使用mx.utils.ObjectUtil.copy 方法。13.11.3. 讨论为了快速演示,我们简单的拷贝对象引用到新对象上,这意味着对第一个对象的值改变都会反映到第二个对象上:+展开-ActionScriptvarobjOne:Object={name:"foo",data:{first:"1",second:"2"}};varobjTwo=objOne;o..
13.10.1. 问题我需要数据对象中存为字符串的日期值属性进行排序。13.10.2. 解决办法为每个日期属性创建Date 对象,使用mx.utils.ObjectUtil 类的dateCompare 方法比较日期。13.10.3. 讨论ObjectUtil 类提供一个dateCompare 方法用于检测两个Date 对象哪个更早。你可以用ObjectUtil.dateCompare 方法来比较两个日期的大小。dateCompare 方法返回1..
13.9.1. 问题我需要根据多个字段对集合进行排序。13.9.2. 解决办法传递多个SortField 对象给Sort 对象,并赋值给集合的sort 属性。13.9.3. 讨论因为数组可被多个SortFields 排序,Sort 对象的fields 属性就是一个数组。这些sort 创建一个层级的结构,所有对象进行分组排序,先根据field 属性里的第一个SortField 对象,再第一个,以此类推。这个..
13.8.1. 问题我想过滤和排序XMLListCollection.13.8.2. 解决办法使用XMLListCollection 继承的ListViewCollection 类的filterFunction 和sortFunction 属性或直接传递Sort 类型对象给XMLListCollection 的sort 属性。13.8.3. 讨论XMLListCollection 用于描述根节点下有多个节点的XML 数据。例如nutrition 节点下有food节点被翻译为XMLListCollec..
13.7.1. 问题我想创建一个集合,它能让我把IHierarchicalData 对象当作集合处理。13.7.2. 解决办法创建一个实现IHierarchicalData 接口的类用于检测每个节点的父节点和子节点。创建一个HierarchicalCollectionView 对象,传递IHierarchicalData 对象作为HierarchicalCollectionView类构造器的参数。13.7.3. 讨论默认情况下, 要使用Hierarchical..
13.6.1. 问题我想双向遍历集合,并保持当前所在位置13.6.2. 解决办法使用ListViewCollection 类的createCursor 方法创建可前后移动的游标。13.6.3. 讨论可使用视图游标浏览集合数据视图中所有数据项,访问和修改集合数据。游标是一个位置指示器,它执行特定位置的数据项。你可以使用集合的createCursor 方法返回一个视图游标。游标的各种方法和属..
13.5.1. 问题我想用平面对象(对象没有父子关系)表示层级数据,作为DataGrid 的dataProvider。13.5.2. 解决办法创建实现IHierarchicalData 接口的自定义数据类,创建方法用于检测是否是节点或对象有父节点以及是否有子节点。13.5.3. 讨论IHierarchicalData 接口定义了DataGrid 和AdvancedDataGrid 组件显示层级数据所需的所有方法。层级数据表示的..
13.4.1. 问题我想基于集合中数据项的某个属性创建唯一的分组数据13.4.2. 解决办法传递一个Array 参数给GroupingCollection 构造器或设置GroupingCollection 对象的source属性。13.4.3. 讨论任何GroupingCollection 都有一个Grouping 对象实例,其拥有对应的GroupingField,定义了将用来生成分组数据的数据对象属性。你可以根据对象属性使用Group..
13.3.1. 问题我想检测ArrayCollection 中的数据项是否被修改。13.3.2. 解决办法监听ArrayCollection 类发出的扩展自EventDispatcher 的事件类型collectionChange 或CollectionEvent.COLLECTION_CHANGE。13.3.3. 讨论任何时候对集合数据的添加和删除都会引发CollectionEvent 类型事件collectionChange。当控件绑定集合后,集合的改变通过此事件来..
13.2.1. 问题我需要对ArrayCollection 数据进行过滤,设置过滤器移除些不匹配的结果。13.2.2. 解决办法J 将原型为function(item:Object):Boolean 的函数传递给ArrayCollection 的filter 属性。如果返回true 表示值继续留在ArrayCollection,返回false 表示其值被移除。13.2.3. 讨论filterFunction 属性是由ListCollectionView 类定义,它是Array..
13.1.1. 问题我需要添加新数据到ArrayCollection 以及从同一个ArrayCollection 中获取某个数据。13.1.2. 解决办法创建ArrayCollection , 使用addItemAt 或addItem 方法插入对象到ArrayCollection ,getItemIndex 或contains 方法用于检测数据项是否已存在于数组中,而ArrayCollection 的sort属性是对ArrayCollection排序以及通过某个字段决定接..
集合是ActionScript 中功能强大的基于索引的数组组件,添加了如对内容进行排序等功能,操作数组的读取位置,创建经过排序的数组视图。集合也能通知其任意事件监听器监听其数据是否改变,以及任何数据项被添加到源数组时可执行自定义逻辑。当数据改变时可通知其监听器,这是集合的新功能,叫数据绑定,还有就是允许DataGrid 和List 组件对其内容进..
12.9.1 问题我想要使用ConvolutionFilter 在MXML 组件上创建一个TweenEffect。12.9.2 解决办法创建一个TweenEffectInstance 类,在onTweenUpdate 事件的回调方法中实例化新的ConvolutionFilter 实例并将这些ConvolutionFilter 实例分配到目标DisplayObject 的过滤器数组。12.9.3 讨论ConvolutionFilter 用一种柔和的方式变换它的目标DisplayObje..
12.8.1 问题我想平滑地过渡颜色。12.8.2 解决办法使用自定义效果,AnimateColor,获得一个在两个色值间平滑过渡。12.8.3 讨论使用AnimateProperty 效果在颜色之间转换会因为色值本身的性质造成闪烁的问题。AnimateProperty 效果平滑地在fromValue 和toValue 之间转换,但是仅限于值为数字的情况下。例如,AnimateProperty 可以出色地将组件从x 等..
12.7.1 问题你需要创建一个在图片之间置换的渐变效果。12.7.2 解决办法继承TweenEffect 和TweenEffectInstance 类,创建一个具有最终置换值的TweenEffect 实例,然后将这些最终置换值传给它所创建的TweenEffectInstance 类实例。在自定义的TweenEffectInstance 类里,创建一个DisplacementMapFilter 对象并且使用Flex 框架的渐变引擎通过在每个o..
12.6.1 问题我想要创建一个自定义的渐变效果,此类效果播放的时候在指定的持续时间内慢慢的改变它的属性。12.6.2 解决办法继承TweenEffect 和TweenEffectInstance 类创建一个工厂对象和一个传给每个目标的由工厂生成的类。12.6.3 讨论Effect 和TweenEffect 显著的区别在于TweenEffect 需要一段时间播放。TweenEffect 的开始属性和结束属性传入到..
12.5.1 问题我想为组件创建自定义的效果触发器。12.5.2 解决办法在组件里使用Effect 元数据标签定义触发器的名称和绑定到触发器的事件。12.5.3 讨论一个触发器定义了一个播放效果的事件,触发器通常在Flex 框架中使用—例如,要定义一个ComboBox 组件的mouseDownEffect 事件。+展开-XMLmx:ComboBoxmouseDownEffect="{glowEffect}"/当在ComboBox ..
12.4.1 问题我需要在效果运行的时候能够暂停,并且之后在当前或开始位置重新播放效果。12.4.2 解决办法使用pause 方法停止效果,这样效果可以重新启动同样也可以使用resume 方法让效果从停止的地方继续播放。12.4.3 讨论Effect 类的stop 方法和pause 方法产生相同的结果:它们都使正在播放的效果停下来。但是stop 方法重置了效果的计时器使得效果..
12.3.1 问题我想创建多个效果并行或者顺序播放。12.3.2 解决办法使用Parallel 标签包含多个需要同时播放的效果或者使用Sequence 标签包含多个需要顺序播放的效果。12.3.3 讨论Sequence 标签会在上一个Effect 对象广播它的effectComplete 事件时继续播放下一个效果。Sequence 过程序列由多个Parallel 效果标签组成,因为Parallel 标签作为Effect ..
12.2.1 问题我想创建一个既可以在MXML 也可以在ActionScript 内使用的自定义效果。12.2.2 解决办法创建一个继承Effect 的类以及任何你想要再实例化的时候传入实例的getter 、setter 属性。然后再创建一个继承EffectInstance 的实例类,该类即是实际播放变化效果的类。12.2.3 讨论在Flex 框架中,每个效果有两个元素组成:一个Effect 和一个Effec..
12.1.1. 问题我想在应用程序里创建并调用一个效果实例。12.1.2. 解决办法如果要在MXML 里面定义一个效果,将Effect 标签加到你的组件的顶层标签内。若要在ActionScript 里面定义一个效果,导入正确的效果类,实例化之,分配一个UIComponent 作为其目标,并调用play 方法播放效果。12.1.3. 讨论Effect 类要求设置一个目标UIComponent。当在Action..
效果是Flex 应用程序中一个重要的部分同时也是Rich Internet Application 称呼中Rich 的重要元素之一。理解Flex 的效果框架和效果不仅仅对设计和实现,即用户能看得见的元素效果重要,同时也对用户往往忽略的部分很重要,即用户往往不关心效果是否正确地实现,而只关心应用程序缓慢或没有进行适当的垃圾回收的现象。+展开 -ActionScriptvartimer..
11.14.1. 问题我想在进入state 时创建State 对象的自定义动作。11.14.2. 解决办法创建一个IOverride 接口的实现类,重写所有需要传递自定义行为的所有方法。11.14.3. 讨论要实现额外的state 动作,你需要创建自定义IOverride 对象,当进入state 时去执行你自己的条件逻辑。任何实现此接口的对象都能被添加到state 的重写数组中--任何组件都有下列..
11.13.1. 问题我需要动态生成新的states 和transitions。11.13.2. 解决办法创建新的State 和Transition 对象,添加它们的属性,把它们添加到每个UIComponent 对象定义的states 和transition 数组中。11.13.3. 讨论一般情况下是不能频繁地创建新的states 和transition 的。但是在某些情况下是很有必要的。比如模板组件。因为每个UIComponent 对象..
11.12.1. 问题我想了解和states 改变时所关联的事件。11.12.2. 解决办法添加trace 语句到ENTER_STATE 事件和子组件的CREATION_COMPLETE 事件中,来显示当进入state 子组件何时被创建,离开state 组件何时被移除,但不是删除。11.12.3. 讨论当state 改变时有一系列事件会发生,看起来有点复杂。State 自身广播的事件有从子组件发出的creation, ad..