mx.effects
public class TweenEffect
继承TweenEffect Inheritance Effect Inheritance EventDispatcher Inheritance Object
子类 AnimateProperty, Blur, Dissolve, Fade, Glow, Move, Pause, Resize, Rotate, SeriesEffect, Zoom

TweenEffect 类是基于 Tween 对象的所有效果的 superclass。此类封装了所有基于 Tween 的效果中常用的方法和属性,以避免在其它位置重复使用代码。

通过创建 TweenEffect 类的子类可定义在某段时间内播放动画的效果。例如,Resize 效果会在指定的时段内修改其目标的大小。

MXML 语法expanded隐藏 MXML 语法

The <mx:TweenEffect> tag inherits all of the tag attributes of its superclass, and adds the following tag attributes:

  <mx:TagName
    Properties
    easingFunction="easing function name; no default"
     
    Events
    tweenEnd="No default"
  />
  

查看示例

另请参见

mx.effects.Tween
mx.effects.effectClasses.TweenEffectInstance
About creating a custom effect
About tween effects


公共属性
 属性定义方
 InheritedclassName : String
[只读 (read-only)] 效果类的名称,如“Fade”。
Effect
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 InheritedcustomFilter : EffectTargetFilter
指定一个 EffectTargetFilter 类型的自定义滤镜对象,效果将使用此对象来确定播放效果的目标。
Effect
 Inheritedduration : Number
效果的持续时间(以毫秒为单位)。
Effect
  easingFunction : Function = null
动画的缓动函数。
TweenEffect
 InheritedeffectTargetHost : IEffectTargetHost
一个属性,您可以通过设置此属性访问数据效果基于列表的目标控件。
Effect
 Inheritedfilter : String
指定用于过滤效果目标的算法。
Effect
 InheritedhideFocusRing : Boolean
确定在开始播放效果时,效果是否应隐藏对焦环。
Effect
 InheritedinstanceClass : Class
一个 Class 类型的对象,用于指定此效果类的效果实例类。
Effect
 InheritedisPlaying : Boolean
[只读 (read-only)] 一个只读标志,如果当前正在播放效果的任一实例,则为 true;否则,则为 false。
Effect
 InheritedperElementOffset : Number
在效果的第一个目标之后,其它效果目标的附加延迟(以毫秒为单位)。
Effect
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
 InheritedrelevantProperties : Array
一个属性名称 Array,执行过滤时将使用这些名称。
Effect
 InheritedrelevantStyles : Array
一个样式名称 Array,执行过滤时将使用这些名称。
Effect
 InheritedrepeatCount : int = 1
效果的重复次数。
Effect
 InheritedrepeatDelay : int = 0
重复播放效果前需要等待的时间(以毫秒为单位)。
Effect
 InheritedstartDelay : int = 0
开始播放效果前需要等待的时间(以毫秒为单位)。
Effect
 InheritedsuspendBackgroundProcessing : Boolean = false
如果为 true,则在播放效果时阻止所有背景处理。
Effect
 Inheritedtarget : Object
要应用此效果的 UIComponent 对象。
Effect
 Inheritedtargets : Array
一个 UIComponent 对象 Array,这些对象都是效果的目标。
Effect
 InheritedtriggerEvent : Event
如果触发了某个效果,则此项目是由 EffectManager 传递给此 Effect 的 Event 对象;如果 EffectManager 当前没有播放此效果,则为 null。
Effect
受保护的属性
 属性定义方
 InheritedendValuesCaptured : Boolean = false
一个标志,如果已确定效果的结束值,则该标志中包含 true;如果需要在效果运行时从效果目标的当前属性捕获这些值,则其中包含 false。
Effect
公共方法
 方法定义方
  
TweenEffect(target:Object = null)
构造函数。
TweenEffect
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
捕获效果目标上相关属性的当前值,并将这些值另存为结束值。
Effect
 Inherited
捕获另一组目标相关属性的当前值。在运行数据更改效果时,此函数由 Flex 使用。
Effect
 Inherited
捕获效果目标上相关属性的当前值。
Effect
 Inherited
创建一个效果实例并对其进行初始化。
Effect
 Inherited
createInstances(targets:Array = null):Array
获取一个目标对象 Array,并对每个目标调用 createInstance() 方法。
Effect
 Inherited
删除实例中的事件侦听器,然后从实例列表中删除该实例。
Effect
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
end(effectInstance:IEffectInstance = null):void
中断当前正在播放的效果,立即跳转到该效果的末尾。
Effect
 Inherited
返回一个字符串 Array,其中每个 String 都是被此效果更改的属性名称。
Effect
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
暂停效果,直到调用 resume() 方法。
Effect
 Inherited
play(targets:Array = null, playReversedFromEnd:Boolean = false):Array
开始播放效果。
Effect
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
在效果由 pause() 方法暂停后继续播放效果。
Effect
 Inherited
逆序播放效果;如果当前正在播放效果,则从该效果的当前位置开始逆序播放。
Effect
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
停止播放效果,使效果目标保持当前状态。
Effect
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
受保护的方法
 方法定义方
 Inherited
applyValueToTarget(target:Object, property:String, value:*, props:Object):void
供 Effect 基础结构内部使用。
Effect
 Inherited
当效果实例完成播放时调用。
Effect
 Inherited
当效果实例开始播放时调用此方法。
Effect
 Inherited
filterInstance(propChanges:Array, target:Object):Boolean
确定筛选效果实例所用的逻辑。
Effect
 Inherited
getValueFromTarget(target:Object, property:String):*
由 captureStartValues() 方法调用,用来从目标获得某个属性的值。
Effect
 Inherited
将效果的属性复制到效果实例。
Effect
  
当 TweenEffect 调度 TweenEvent 时调用此方法。
TweenEffect
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
 Inherited当效果完成播放时(既可以是效果实际完成播放时,也可以是通过调用 end() 方法中断效果时)调度。Effect
 Inherited当效果开始播放时调度。Effect
  当补间效果结束时调度。TweenEffect
  当开始播放补间效果时调度此事件,相当于首次调用 onTweenUpdate() 方法。TweenEffect
  每当补间效果更新目标时调度。TweenEffect
属性详细信息
easingFunction属性
public var easingFunction:Function = null

动画的缓动函数。此缓动函数用于在初始值和最终值之间进行插值。简单的缓动函数只能进行线性 interpolation,而比较高级的缓动函数可以创建加速和减速效果,使动画效果看起来更加自然。

如果未指定缓动函数,则使用基于 Math.sin() 方法的缓动函数。

该缓动函数位于 Robert Penner 编写的函数签名之后。该函数使用四个参数:第一个参数是“current time”,其中动画的开始时间是 0;第二个参数是动画开始时的初始值(一个 Number);第三个参数是结束值与初始值之间的差值;第四个参数是动画的持续时间。返回值是当前时间的插值。此值通常介于初始值和结束值之间。

此属性的值必须是一个函数对象。

Flex 在 mx.effects.easing 包中提供了一组缓动函数。

构造函数详细信息
TweenEffect()构造函数
public function TweenEffect(target:Object = null)

构造函数。

参数
target:Object (default = null) — 要使用此效果为其设置动画的 Object。
方法详细信息
tweenEventHandler()方法
protected function tweenEventHandler(event:TweenEvent):void

当 TweenEffect 调度 TweenEvent 时调用此方法。如果覆盖此方法,请确保调用超级方法。

参数

event:TweenEvent — TweenEvent 类型的事件对象。

事件详细信息
tweenEnd 事件
事件对象类型: mx.events.TweenEvent
属性 TweenEvent.type = mx.events.TweenEvent.TWEEN_END

当补间效果结束时调度。此事件与调用 TweenEffectInstance.onTweenEnd() 方法相对应。

如果只播放一次补间效果,则此事件将与 effectEnd 事件同时发生。如果将补间效果配置为重复播放,则在每次重复播放效果结束时都会发生此事件,而在最后一次播放效果结束后发生 endEffect 事件。

TweenEvent.TWEEN_END 常数可为 tweenEnd 事件定义事件对象的 type 属性的值。

事件对象的属性有下列值:

属性
bubbles false
cancelable false
currentTarget 用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
target 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
value 传递给 onTweenEnd() 方法的值。
tweenStart 事件  
事件对象类型: mx.events.TweenEvent
属性 TweenEvent.type = mx.events.TweenEvent.TWEEN_START

当开始播放补间效果时调度此事件,相当于首次调用 onTweenUpdate() 方法。Flex 还会同时为此效果首次调度 tweenUpdate 事件。

Effect.effectStart 事件在 tweenStart 事件之前调度。

TweenEvent.TWEEN_START 常数可为 tweenStart 事件定义事件对象的 type 属性的值。

事件对象的属性有下列值:

属性
bubbles false
cancelable false
currentTarget 用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
target 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
value 传递给 onTweenUpdate() 方法的值。
tweenUpdate 事件  
事件对象类型: mx.events.TweenEvent
属性 TweenEvent.type = mx.events.TweenEvent.TWEEN_UPDATE

每当补间效果更新目标时调度。此事件与调用 TweenEffectInstance.onTweenUpdate() 方法相对应。

TweenEvent.TWEEN_UPDATE 常数可为 tweenUpdate 事件定义事件对象的 type 属性的值。

事件对象的属性有下列值:

属性
bubbles false
cancelable false
currentTarget 用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
target 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
value 传递给 onTweenUpdate() 方法的值。
示例 如何使用示例
SimpleTweenEffectExample.mxml
<?xml version="1.0"?>
<!-- Simple example to demonstrate the TweenEffect class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
        
            import mx.events.TweenEvent;

            // Event handler for the tweenUpdate and tweenEnd effects.            
            private function tweenUpdateHandler(event:TweenEvent):void {
                // Access current width of the image.
                currentWidth.text="Current width (in pixels): " + String(event.value[0]);
            }

            // Event handler for the reset button.            
            private function resetHandler():void {
                expand.end(); 
                img.width=30; 
                currentWidth.text="Current width (in pixels): 30";                
                img.height=60; 
                button1.enabled=true;
            }
        ]]>
    </mx:Script>

    <mx:Resize id="expand" target="{img}" widthTo="100" heightTo="200" 
        duration="10000" 
        tweenUpdate="tweenUpdateHandler(event);" 
        tweenEnd="tweenUpdateHandler(event);"/>

    <mx:Panel title="Resize Effect Example" width="100%" height="100%" 
        paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">

        <mx:Text width="100%" color="blue" 
            text="Use the Button controls to resize the image."/>

        <mx:HBox width="100%">
            <mx:Image id="img" width="30" height="60"
                source="@Embed(source='assets/Nokia_6630.png')"/>
            <mx:Text id="currentWidth" height="20" width="100%"/>     
        </mx:HBox>
            
        <mx:ControlBar>
            <mx:Button id="button1" label="Start" click="expand.play(); button1.enabled=false;"/>
            <mx:Button label="Pause" click="expand.pause();"/>
            <mx:Button label="Resume" click="expand.resume();"/>
            <mx:Button label="Reverse" click="expand.reverse();"/>
            <mx:Button label="End" click="expand.end();"/>
            <mx:Button label="Reset" click="resetHandler();"/>
        </mx:ControlBar>
        
    </mx:Panel>
</mx:Application>