12.5.创建自定义Effect触发器

评论(0)浏览(69)分类:flash/flex/fcs/AIR
12.5.创建自定义Effect触发器12.5.1 问题我想为组件创建自定义的效果触发器。12.5.2 解决办法在组件里使用Effect 元数据标签定义触发器的名称和绑定到触发器的事件。12.5.3 讨论一个触发器定义了一个播放效果的事件,触发器通常在Flex 框架中使用—例如,要定义一个ComboBox 组件的mouseDownEffect 事件。+展开-XMLmx:ComboBoxmouseDownEffect="{glowEffect}"/当在ComboBox ..

12.4.暂停、倒放和重新播放一个Effect

评论(0)浏览(108)分类:flash/flex/fcs/AIR
12.4.暂停、倒放和重新播放一个Effect12.4.1 问题我需要在效果运行的时候能够暂停,并且之后在当前或开始位置重新播放效果。12.4.2 解决办法使用pause 方法停止效果,这样效果可以重新启动同样也可以使用resume 方法让效果从停止的地方继续播放。12.4.3 讨论Effect 类的stop 方法和pause 方法产生相同的结果:它们都使正在播放的效果停下来。但是stop 方法重置了效果的计时器使得效果..

12.3.创建Effects的Parallel系列或Sequence系列

评论(0)浏览(72)分类:flash/flex/fcs/AIR
12.3.创建Effects的Parallel系列或Sequence系列12.3.1 问题我想创建多个效果并行或者顺序播放。12.3.2 解决办法使用Parallel 标签包含多个需要同时播放的效果或者使用Sequence 标签包含多个需要顺序播放的效果。12.3.3 讨论Sequence 标签会在上一个Effect 对象广播它的effectComplete 事件时继续播放下一个效果。Sequence 过程序列由多个Parallel 效果标签组成,因为Parallel 标签作为Effect ..

12.2.建立一个自定义效果

评论(0)浏览(109)分类:flash/flex/fcs/AIR
12.2.建立一个自定义效果12.2.1 问题我想创建一个既可以在MXML 也可以在ActionScript 内使用的自定义效果。12.2.2 解决办法创建一个继承Effect 的类以及任何你想要再实例化的时候传入实例的getter 、setter 属性。然后再创建一个继承EffectInstance 的实例类,该类即是实际播放变化效果的类。12.2.3 讨论在Flex 框架中,每个效果有两个元素组成:一个Effect 和一个Effec..

12.1.在MXML和ActionScript里调用Effect

评论(0)浏览(98)分类:flash/flex/fcs/AIR
12.1.在MXML和ActionScript里调用Effect12.1.1. 问题我想在应用程序里创建并调用一个效果实例。12.1.2. 解决办法如果要在MXML 里面定义一个效果,将Effect 标签加到你的组件的顶层标签内。若要在ActionScript 里面定义一个效果,导入正确的效果类,实例化之,分配一个UIComponent 作为其目标,并调用play 方法播放效果。12.1.3. 讨论Effect 类要求设置一个目标UIComponent。当在Action..

第十二章. 特效

评论(0)浏览(87)分类:flash/flex/fcs/AIR
第十二章. 特效效果是Flex 应用程序中一个重要的部分同时也是Rich Internet Application 称呼中Rich 的重要元素之一。理解Flex 的效果框架和效果不仅仅对设计和实现,即用户能看得见的元素效果重要,同时也对用户往往忽略的部分很重要,即用户往往不关心效果是否正确地实现,而只关心应用程序缓慢或没有进行适当的垃圾回收的现象。+展开 -ActionScriptvartimer..

11.14.创建State的自定义动作(action)

评论(0)浏览(113)分类:flash/flex/fcs/AIR
11.14.创建State的自定义动作(action)11.14.1. 问题我想在进入state 时创建State 对象的自定义动作。11.14.2. 解决办法创建一个IOverride 接口的实现类,重写所有需要传递自定义行为的所有方法。11.14.3. 讨论要实现额外的state 动作,你需要创建自定义IOverride 对象,当进入state 时去执行你自己的条件逻辑。任何实现此接口的对象都能被添加到state 的重写数组中--任何组件都有下列..

11.13.动态生成States和Transitions

评论(0)浏览(128)分类:flash/flex/fcs/AIR
11.13.动态生成States和Transitions11.13.1. 问题我需要动态生成新的states 和transitions。11.13.2. 解决办法创建新的State 和Transition 对象,添加它们的属性,把它们添加到每个UIComponent 对象定义的states 和transition 数组中。11.13.3. 讨论一般情况下是不能频繁地创建新的states 和transition 的。但是在某些情况下是很有必要的。比如模板组件。因为每个UIComponent 对象..

11.12.处理StateChange 事件

评论(0)浏览(102)分类:flash/flex/fcs/AIR
11.12.处理StateChange 事件11.12.1. 问题我想了解和states 改变时所关联的事件。11.12.2. 解决办法添加trace 语句到ENTER_STATE 事件和子组件的CREATION_COMPLETE 事件中,来显示当进入state 子组件何时被创建,离开state 组件何时被移除,但不是删除。11.12.3. 讨论当state 改变时有一系列事件会发生,看起来有点复杂。State 自身广播的事件有从子组件发出的creation, ad..

11.11.添加视图States到Flash组件

评论(0)浏览(92)分类:flash/flex/fcs/AIR
11.11.添加视图States到Flash组件11.11.1. 问题我想使用Flash 组件作为states。11.11.2. 解决办法在UIMovieClip 或ContainerMovieClip 实例内提供帧标签作为states。11.11.3. 讨论首先创建将在Flex 应用程序中实例化的类。在Flex 程序中如果没有添加子对象则这个类必须扩展自UIMovieClip 类,否则需扩展自ContainerMovieClip 类,例如:+展开-ActionScriptpackage{importflash.t..

11.10.在State Changes事件中添加和删除事件监听器

评论(0)浏览(79)分类:flash/flex/fcs/AIR
11.10.在State Changes事件中添加和删除事件监听器11.10.1. 问题我想给State 中创建添加的组件注册事件监听器,当state 改变时移除监听器。11.10.2. 解决办法将事件监听器关联到组件的addedToStage 事件,在removedFromStage 事件中移除事件监听器。或者使用SetEventHandler 对象创建事件监听器。11.10.3. 讨论在ActionScript3中确保事件处理器能被正确的移除是保证应用程序不会造成消耗Flash Pl..

11.9.对添加到State中的Object进行数据绑定

评论(0)浏览(91)分类:flash/flex/fcs/AIR
11.9.对添加到State中的Object进行数据绑定11.9.1. 问题我想绑定一个对象到属性上,该对象是进入某个state 时才会被创建。11.9.2. 解决办法使用mx.binding.utils.BindingUtils 类的bindProperty 方法动态创建绑定。11.9.3. 讨论你可以在编译器在MXML 文件内使用{}或者在运行期使用bindProperty 方法创建绑定。bindProperty 方法格式如下:+展开-ActionScriptpublicstaticfunctionbindProp..

11.8.使用States的延时实例工厂

评论(0)浏览(78)分类:flash/flex/fcs/AIR
11.8.使用States的延时实例工厂11.8.1. 问题我需要一个对象,它能为AddChild 对象实例化不同类型的对象。11.8.2. 解决办法创建工厂类,并赋值给AddChild 对象的targetFactory 属性。11.8.3. 讨论AddChild 对象的targetFactory 属性需要一个实现IDeferredInstance 接口的对象。IDeferredInstance 接口只需要一个方法:getInstance():Object. 当AddChild 对象需要一个新的可视化..

11.7.用HistoryManagement整合States视图

评论(0)浏览(65)分类:flash/flex/fcs/AIR
11.7.用HistoryManagement整合States视图11.7.1. 问题我想用Flex 框架的HistoryManagement 机制整合states。11.7.2. 解决办法创建扩展自IHistoryManagerClient 接口的应用程序或组件。使用HistoryManagement 注册应用程序,当state 改变时使用HistoryManager.save 方法保存当前state。11.7.3. 讨论IHistoryManager client 定义了以下方法:loadState(state:Object):void加载此对象的状态..

11.6.建立在基础State之上的State

评论(0)浏览(67)分类:flash/flex/fcs/AIR
11.6.建立在基础State之上的State11.6.1. 问题我想创建一个state,继承其他state 的所有属性并重新设置某些属性。11.6.2. 解决办法在新state 中设置basedOn 属性。11.6.3. 讨论在其他states 基础上创建states 是一种方便的方式以便创建出一组层级关系的states。当一个state 基于另一个states 时,它继承了第一个state 的所有属性,新state 中任何重写的定义都被添加进来。这意味..

11.5.对指定组件应用局部Transition

评论(0)浏览(101)分类:flash/flex/fcs/AIR
11.5.对指定组件应用局部Transition11.5.1. 问题我想应用一部分Transition, Sequence, 或Parallel 对象到某个子组件上。11.5.2. 解决办法在过滤函数基础上为每个特效过滤目标直到返回期望的所有子组件数据。11.5.3. 讨论正如第11.4节提及的那样EffectTargetFilter 对象过滤只能应用整个sequence 或整个Parallel组合特效。要想为每个特效过滤目标,你必须编写自定义函数返回每个特效..

11.4.为特定类型的子节点过滤Transitions

评论(0)浏览(82)分类:flash/flex/fcs/AIR
11.4.为特定类型的子节点过滤Transitions11.4.1. 问题我想让transition 只影响到某些子组件11.4.2. 解决办法使用EffectTargetFilter 对象定义过滤函数来检测哪些目标将被应用Transition。11.4.3. 讨论EffectTargetFilter 对象可定义过滤器检测哪些目标被应用到transition。EffectTargetFilter 对象需要一个过滤函数,类似于一个数组,为每个传进Transition 的对象返回true 或false,传递..

11.3.使用AddChildAction和RemoveChildAction

评论(1)浏览(72)分类:flash/flex/fcs/AIR
11.3.使用AddChildAction和RemoveChildAction11.3.1. 问题我想在播放transition 时能控制何时添加或删除子组件。11.3.2. 解决办法使用AddChildAction 和RemoveChildAction 标签分别控制子组件的添加和删除。11.3.3. 讨论AddChildAction 和RemoveChildAction 对象执行方式和SetPropertyAction 和SetPropertyStyle对象类似,它们包装了State 对象的功能,可在Transition 中使用,为了与Transi..

11.2.为进入和离开States创建Transitions

评论(0)浏览(79)分类:flash/flex/fcs/AIR
11.2.为进入和离开States创建Transitions11.2.1. 问题我想创建一个特效,当进入或退出state 时进行播放11.2.2. 解决办法使用Transitions 对象,设置其fromState 和toState 属性。11.2.3. 讨论一个transition 就是一个特效或一系列特效。Transition 对象给出了fromState 和toState 属性定义何时播放。fromState 和toState 属性及可以是特定的states 或通配符(*)。有几个方法创建Transiti..

11.1.设置State的样式和属性

评论(0)浏览(82)分类:flash/flex/fcs/AIR
11.1.设置State的样式和属性11.1.1. 问题我想为某个当前视图设置样式或属性以及在退出时移除该样式或属性。11.1.2. 解决办法当进入state 时用SetStyle 标记来改变任一样式并在其退出时自动回到先前样式。11.1.3. 讨论当进入一个state 时都可通过SetStyle 和SetProperty 标签设置任意组件的样式和属性,设置state 中的样式和属性就像是添加子节点一样,当回到初始state 时这..

第十一章. States(状态)

评论(0)浏览(70)分类:flash/flex/fcs/AIR
第十一章. States(状态)States 是一套用于创建状态组件的强大工具,也就是说组件可以有多个视图。需要此操作的组件可以是一个编辑器和显示器,一个有多个示屏的对话框,或一个有菜单视图和细节视图的组件。这些多个视图都被包含在一个组件中,被归类为一个states。Flex Framework 定义了一个类叫State,包含在mx.state 包中,可让你在单个组件中定义特定视图的属性。所..

10.7.自定义列表类控件的拽动指示器

评论(0)浏览(136)分类:flash/flex/fcs/AIR
10.7.自定义列表类控件的拽动指示器10.7.1 问题你想自定义拖拽指示器的图形,并在list 控件的拖拽操作期间显示。10.7.2 解决办法创建一个自定义的可编程皮肤(programmatic skin),并且为一个List 控件设置dropIndicatorSkin 样式属性。10.7.3. 讨论Flex 框架的列表类组件具有默认的可编程(programmatic)皮肤,在你执行拖拽操作时用来渲染指示器。当ListBase.showDropFeedback 方..

10.6.自定义列表类控件的拖动图像

评论(0)浏览(68)分类:flash/flex/fcs/AIR
10.6.自定义列表类控件的拖动图像10.6.1 问题你希望在一个自定义列表类控件中进行拖拽操作时,自定义它的拖动图像。10.6.2 解决办法创建一个需要在拖拽操作时显示的UIComponent,并覆盖自定义列表类控件的dragImagegetter 方法。10.6.3 讨论Flex 框架中的列表类控件天生就会处理拖拽。这意味着你不需要为DragManager 发出的事件设置事件监听器。尽管如此,由于你不直接跟DragMan..

10.5.启动和禁止拖操作

评论(0)浏览(122)分类:flash/flex/fcs/AIR
10.5.启动和禁止拖操作10.5.1. 问题你想在运行时启动和禁止列表类控件的拖拽操作。10.5.2. 解决办法使用列表类控件的拖拽事件属性来管理属性值。10.5.3 讨论Flex 框架的列表类控件具有内置的管理器来与DragManager 互动,通过使用dragEnabled和dropEnabled 属性,提供了一个便捷的途径来启动控件响应拖拽动作。通过使用内建的事件属性dragStart, dragEnter,dragOver..

10.4.在List 之间进行拖拽操作

评论(0)浏览(69)分类:flash/flex/fcs/AIR
10.4.在List 之间进行拖拽操作10.4.1 问题你希望从一个List 中拖拽数据到另一个List。10.4.2 解决办法使用List 内建的拖拽管理器并把每个组件设置成允许接受拖拽操作。10.4.3 讨论Flex 列表类控件内建的拖拽管理器,去掉了手动操作DragManager 对象的必要,从而使数据从一个List 移动到另一个List 变得相对简单。通过设置dragEnabled 和dropEnabled属性为true,你就能打开移动..

10.3.在List 内部进行拖拽操作

评论(0)浏览(127)分类:flash/flex/fcs/AIR
10.3.在List 内部进行拖拽操作10.3.1 问题你希望在同一个列表类的组件实例内移动和复制数据。10.3.2 解决办法使用列表类组件内建的拖拽管理器。10.3.3 讨论通过为来自于DragManager 的事件指派事件处理器, 你可以激活任何组件的拖拽能力。尽管你可以手动添加这种支持到列表控件(list controls),但Flex 框架的列表类组件,例如list,Tree 和DataGrid,具有管理拖拽操作的内..

10.2.指定一个拖拽代理

评论(0)浏览(93)分类:flash/flex/fcs/AIR
10.2.指定一个拖拽代理10.2.1 问题你希望在拖拽开始时自定义一幅图像来表现这个被拖拽的对象。10.2.2 解决办法为DragManager.doDrag 方法的可选参数dragImage 指定一幅自定义图像。10.2.3. 讨论默认情况下,在拖拽操作中使用的图像是一个包含透明度的矩形。这个在拖操作开始时被渲染的显示对象被称为拖拽代理。通过给dragImage 参数传递一个IFlexDisplayObject 实例,..

10.1.使用DragManager 类

评论(0)浏览(88)分类:flash/flex/fcs/AIR
10.1.使用DragManager 类10.1.1. 问题你想在程序中从一个地方移动数据到另一个地方。10.1.2. 解决方法使用mx.manager.DragManager 类管理拖拽操作以及在释放目标上监听拖拽事件。10.1.3. 讨论DragManager 类用于管理在你的程序里执行的拖拽操作。当一个拖拽操作被初始化,拖拽源(drag source)通过静态方法doDrag 增加到DragManager。被称为释放目标(drop target)的组件了..

第十章. 拖拽操作

评论(0)浏览(103)分类:flash/flex/fcs/AIR
第十章. 拖拽操作Flex 框架的拖拽能力允许用户可视化地从一个地方移动数据到另一个地方,这大大增强了富互联网应用程序的体验性。任何扩展了mx.core.UIComponent 类的组件都支持拖拽。在一个拖拽操作中,有一个初始方(initiator)和一个接收方(receiver)。任何一个UIComponent的实例都能接受由拖拽动作初始的释放操作。一些列表类的Flex 组件,如List、Tree 和Dat..

9.18.自定义引导界面

评论(0)浏览(101)分类:flash/flex/fcs/AIR
9.18.自定义引导界面9.18.1. 问题你想自定义在下载和初始化Flex 程序时显示的引导界面。9.18.2. 解决办法通过生成mx.preloaders.DownloadProgressBar 类(默认的程序引导界面)的子类或者生成实现了mx.preloaders.IPreloaderDisplay 接口的flash.display.Sprite 的子类型两种方法创建自定义的引导界面。9.18.3. 讨论一个Flex 程序默认地由两个画面组成。第一个生成引导..