mx.effects
接口public interface IEffect extends IAbstractEffect , IEventDispatcher
实现器 Effect

IEffect 接口定义所有 Flex 效果的基本接口。IEffectInstance 接口定义所有效果实例子类的基本接口。

另请参见

mx.effects.IEffectInstance


公共属性
 属性定义方
  className : String
[只读 (read-only)] 效果类的名称,如“Fade”。
IEffect
  customFilter : EffectTargetFilter
指定一个 EffectTargetFilter 类型的自定义滤镜对象,效果将使用此对象来确定播放效果的目标。
IEffect
  duration : Number
效果的持续时间(以毫秒为单位)。
IEffect
  effectTargetHost : IEffectTargetHost
一个属性,您可以通过设置此属性访问数据效果基于列表的目标控件。
IEffect
  filter : String
指定用于过滤效果目标的算法。
IEffect
  hideFocusRing : Boolean
确定在开始播放效果时,效果是否应隐藏对焦环。
IEffect
  isPlaying : Boolean
[只读 (read-only)] 一个只读标志,如果当前正在播放效果的任一实例,则为 true;否则,则为 false。
IEffect
  perElementOffset : Number
在效果的第一个目标之后,其它效果目标的附加延迟(以毫秒为单位)。
IEffect
  relevantProperties : Array
一个属性名称 Array,执行过滤时将使用这些名称。
IEffect
  relevantStyles : Array
一个样式名称 Array,执行过滤时将使用这些名称。
IEffect
  target : Object
要应用此效果的 UIComponent 对象。
IEffect
  targets : Array
一个 UIComponent 对象 Array,这些对象都是效果的目标。
IEffect
  triggerEvent : Event
如果触发了某个效果,则此项目是由 EffectManager 传递给此 Effect 的 Event 对象;如果 EffectManager 当前没有播放此效果,则为 null。
IEffect
公共方法
 方法定义方
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
IEventDispatcher
  
捕获效果目标上相关属性的当前值,并将这些值另存为结束值。
IEffect
  
捕获另一组目标相关属性的当前值。在运行数据更改效果时,此函数由 Flex 使用。
IEffect
  
捕获效果目标上相关属性的当前值。
IEffect
  
创建一个效果实例并对其进行初始化。
IEffect
  
createInstances(targets:Array = null):Array
获取一个目标对象 Array,并对每个目标调用 createInstance() 方法。
IEffect
  
删除实例中的事件侦听器,然后从实例列表中删除该实例。
IEffect
 Inherited
将事件调度到事件流中。
IEventDispatcher
  
end(effectInstance:IEffectInstance = null):void
中断当前正在播放的效果,立即跳转到该效果的末尾。
IEffect
  
返回一个字符串 Array,其中每个 String 都是被此效果更改的属性名称。
IEffect
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
IEventDispatcher
  
暂停效果,直到调用 resume() 方法。
IEffect
  
play(targets:Array = null, playReversedFromEnd:Boolean = false):Array
开始播放效果。
IEffect
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
IEventDispatcher
  
在效果由 pause() 方法暂停后继续播放效果。
IEffect
  
逆序播放效果;如果当前正在播放效果,则从该效果的当前位置开始逆序播放。
IEffect
  
停止播放效果,使效果目标保持当前状态。
IEffect
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
IEventDispatcher
属性详细信息
className属性
className:String  [只读 (read-only)]

效果类的名称,如 "Fade"

这是一个短类名称或 unqualified 类名称,不包含包名称。如果需要限定名称,可使用 flash.utils 包中的 getQualifiedClassName() 方法。



实现
    public function get className():String
customFilter属性 
customFilter:EffectTargetFilter  [读写]

指定一个 EffectTargetFilter 类型的自定义滤镜对象,效果将使用此对象来确定播放效果的目标。

只有在播放效果之前调用 captureStartValues() 方法时,才执行目标过滤。Flex 会在转移效果过程中自动调用 captureStartValues() 方法。

使用 filter 属性可实现简单过滤。如果 customFilter 属性值非空,则会忽略 filter 属性。

默认值为 null.



实现
    public function get customFilter():EffectTargetFilter
    public function set customFilter(value:EffectTargetFilter):void

另请参见

duration属性 
duration:Number  [读写]

效果的持续时间(以毫秒为单位)。

在 Parallel 或 Sequence 效果中,可通过 duration 属性设置每种效果的持续时间。例如,如果 Sequence 效果的 duration 属性设置为 3000,则 Sequence 中的每个效果都会播放 3000 毫秒。

对于重复播放的效果来说,duration 属性将指定效果各个实例的持续时间。因此,如果某个效果的 duration 属性设置为 2000,并且 repeatCount 属性设置为 3,则播放此效果共需要 6000 毫秒(6 秒)。

默认值为 500.



实现
    public function get duration():Number
    public function set duration(value:Number):void
effectTargetHost属性 
effectTargetHost:IEffectTargetHost  [读写]

一个属性,您可以通过设置此属性访问数据效果基于列表的目标控件。通过设置此属性,效果类的实例将能够访问播放此效果的基于列表的控件。



实现
    public function get effectTargetHost():IEffectTargetHost
    public function set effectTargetHost(value:IEffectTargetHost):void
filter属性 
filter:String  [读写]

指定用于过滤效果目标的算法。如果此值为 null,将指定不进行任何过滤。

只有在播放效果之前调用 captureStartValues() 方法时,才执行目标过滤。当转移过程或基于列表的控件的数据效果中需使用该效果时,Flex 会自动调用 captureStartValues() 方法。

使用此属性可实现简单过滤。使用 customFilter 属性可实现更为复杂的过滤。如果 customFilter 属性值非空,则会忽略此属性。

filter 属性可使用以下值:

默认值为 null.



实现
    public function get filter():String
    public function set filter(value:String):void
hideFocusRing属性 
hideFocusRing:Boolean  [读写]

确定在开始播放效果时,效果是否应隐藏对焦环。效果目标负责隐藏对焦环。UIComponent 类的子类将自动隐藏对焦环。如果效果目标不是 UIComponent 类的子类,则必须向其添加隐藏对焦环的功能。

将此属性设置为 true 可在播放效果期间隐藏对焦环。

对于 Effect 的子类,默认值是 false。对于 MaskEffect 的子类,默认值是 true



实现
    public function get hideFocusRing():Boolean
    public function set hideFocusRing(value:Boolean):void
isPlaying属性 
isPlaying:Boolean  [只读 (read-only)]

一个只读标志,如果当前正在播放效果的任一实例,则为 true;否则,则为 false。



实现
    public function get isPlaying():Boolean
perElementOffset属性 
perElementOffset:Number  [读写]

在效果的第一个目标之后,其它效果目标的附加延迟(以毫秒为单位)。此值将添加到 startDelay 属性的值中。



实现
    public function get perElementOffset():Number
    public function set perElementOffset(value:Number):void
relevantProperties属性 
relevantProperties:Array  [读写]

一个属性名称 Array,执行过滤时将使用这些名称。此属性仅供内部使用,效果用户不应设置此属性。

默认值为 getAffectedProperties() 方法返回的 Array。



实现
    public function get relevantProperties():Array
    public function set relevantProperties(value:Array):void
relevantStyles属性 
relevantStyles:Array  [读写]

一个样式名称 Array,执行过滤时将使用这些名称。此属性仅供内部使用,效果用户不应设置此属性。

默认值为 getAffectedProperties() 方法返回的 Array。



实现
    public function get relevantStyles():Array
    public function set relevantStyles(value:Array):void
target属性 
target:Object  [读写]

要应用此效果的 UIComponent 对象。当效果触发器触发某个效果时,会自动将 target 属性设置为触发该效果的对象。



实现
    public function get target():Object
    public function set target(value:Object):void
targets属性 
targets:Array  [读写]

一个 UIComponent 对象 Array,这些对象都是效果的目标。播放效果时,会对各个目标并行执行效果。设置 target 属性将替换此 Array 中的所有对象。设置 targets 属性后,target 属性将返回此 Array 中的第一个项目。



实现
    public function get targets():Array
    public function set targets(value:Array):void
triggerEvent属性 
triggerEvent:Event  [读写]

如果触发了某个效果,则此项目是由 EffectManager 传递给此 Effect 的 Event 对象;如果 EffectManager 当前没有播放此效果,则为 null



实现
    public function get triggerEvent():Event
    public function set triggerEvent(value:Event):void
方法详细信息
captureEndValues()方法
public function captureEndValues():void

捕获效果目标上相关属性的当前值,并将这些值另存为结束值。

如果此效果是数据更改效果的一部分,Flex 会自动调用 captureEndValues() 方法。

captureMoreStartValues()方法 
public function captureMoreStartValues(targets:Array):void

捕获另一组目标相关属性的当前值

在运行数据更改效果时,此函数由 Flex 使用。

参数

targets:Array — 要捕获其值的目标的数组

captureStartValues()方法 
public function captureStartValues():void

捕获效果目标上相关属性的当前值。Flex 会在转移效果过程中自动调用 captureStartValues() 方法。

如果希望效果指出此效果的起始值和结束值,请使用此函数。下面是使用此函数的正确步骤:

  1. 调用 captureStartValues() 方法。效果捕获效果起始值。
  2. 更改效果目标,如添加/删除子项、更改属性、更改位置或更改尺寸。
  3. 调用 play() 方法。此效果将捕获结束值。此函数会为此效果创建的每个效果实例填充 EffectInstance.propertyChanges 属性。效果开发人员可以使用 propertyChanges 属性检索其效果的起始值和结束值。

createInstance()方法 
public function createInstance(target:Object = null):IEffectInstance

创建一个效果实例并对其进行初始化。在播放效果实例前,使用此方法(而非 play() 方法)处理效果实例属性。

所创建的效果实例的类型由 instanceClass 属性指定。然后,使用 initInstance() 方法初始化此实例。如果该实例是 EffectManager 在效果触发器触发此效果时创建的,则还需要调用 EffectInstance.initEffect() 方法进一步初始化此效果。

调用 createInstance() 方法不会播放效果。您必须对返回的效果实例调用 startEffect() 方法。

Effect.play() 方法将自动调用此函数。

参数

target:Object (default = null) — 要使用此效果为其设置动画的对象。

返回
IEffectInstance — 效果的效果实例对象。
createInstances()方法 
public function createInstances(targets:Array = null):Array

获取一个目标对象 Array,并对每个目标调用 createInstance() 方法。

参数

targets:Array (default = null) — 要使用此效果设置动画的对象的数组。

返回
Array — 效果的效果实例对象的数组,一个目标一个数组。
deleteInstance()方法 
public function deleteInstance(instance:IEffectInstance):void

删除实例中的事件侦听器,然后从实例列表中删除该实例。

参数

instance:IEffectInstance

end()方法 
public function end(effectInstance:IEffectInstance = null):void

中断当前正在播放的效果,立即跳转到该效果的末尾。调用此方法将调用 EffectInstance.end() 方法。

如果调用此方法来结束播放效果,效果实例将调度 effectEnd 事件。

如果将效果实例作为参数传递,则会中断此实例。如果没有传入参数,则该效果当前生成的所有效果实例都将中断。

参数

effectInstance:IEffectInstance (default = null) — 要终止的 EffectInstance。

另请参见

getAffectedProperties()方法 
public function getAffectedProperties():Array

返回一个字符串 Array,其中每个 String 都是被此效果更改的属性名称。例如,Move 效果会返回一个包含 "x""y" 的 Array。

Effect 的每个子类都必须实现此方法。EffectManager 使用此方法来避免试图同时对同一对象的相同属性设置不同的动画效果。

返回
Array — 一个用于指定此效果修改的属性的名称的字符串 Array。
pause()方法 
public function pause():void

暂停效果,直到调用 resume() 方法。

play()方法 
public function play(targets:Array = null, playReversedFromEnd:Boolean = false):Array

开始播放效果。通常在调用 play() 方法之前先调用 end() 方法,以确保在开始播放新效果前已结束先前效果的所有实例。

所有子类都必须实现此方法。

参数

targets:Array (default = null) — 播放此效果的目标对象的数组。如果已指定此参数,则不会使用效果的 targets 属性。
 
playReversedFromEnd:Boolean (default = false) — 如果为 true,则向后播放效果。

返回
Array — 效果的 EffectInstance 对象的数组,一个目标一个数组。
resume()方法 
public function resume():void

在效果由 pause() 方法暂停后继续播放效果。

reverse()方法 
public function reverse():void

逆序播放效果;如果当前正在播放效果,则从该效果的当前位置开始逆序播放。

stop()方法 
public function stop():void

停止播放效果,使效果目标保持当前状态。与调用 pause() 方法不同,无法先调用 stop() 方法再调用 resume() 方法。不过,您可以调用 play() 方法重新播放效果。

如果调用此方法来结束播放效果,效果实例将调度 effectEnd 事件。

对于遮罩效果,停止播放效果后不会自动删除遮罩。如果事先没有删除遮罩就继续对同一目标运行遮罩效果,可能会出现意外结果。