包 | mx.effects |
类 | public class TweenEffect |
继承 | TweenEffect Effect EventDispatcher Object |
子类 | AnimateProperty, Blur, Dissolve, Fade, Glow, Move, Pause, Resize, Rotate, SeriesEffect, Zoom |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
从 Flex 4.0 开始,Adobe 建议您使用 spark.effects.Animate 类来替代此类。 在 Flex 3 中,TweenEffect 是动画效果的超类。自 Flex 4 起,Spark 效果将扩展 spark.effects.Animate 类而不是 TweenEffect。 |
TweenEffect 类是基于 Tween 对象的所有效果的 superclass。此类封装了所有基于 Tween 的效果中常用的方法和属性,以避免在其他位置重复使用代码。
通过创建 TweenEffect 类的子类可定义在某段时间内播放动画的效果。例如,Resize 效果会在指定的时段内修改其目标的大小。
MXML 语法隐藏 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" />
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
className : String [只读]
效果类的名称,如“Fade”。 | Effect | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
customFilter : mx.effects:EffectTargetFilter
指定一个 EffectTargetFilter 类型的自定义滤镜对象,效果将使用此对象来确定播放效果的目标。 | Effect | ||
duration : Number
效果的持续时间(以毫秒为单位)。 | Effect | ||
easingFunction : Function = null
动画的缓动函数。 | TweenEffect | ||
effectTargetHost : mx.effects:IEffectTargetHost
一个属性,您可以通过设置此属性访问数据效果基于列表的目标控件。 | Effect | ||
filter : String
指定用于过滤效果目标的算法。 | Effect | ||
hideFocusRing : Boolean
确定在开始播放效果时,效果是否应隐藏对焦环。 | Effect | ||
instanceClass : Class
一个 Class 类型的对象,用于指定此效果类的效果实例类。 | Effect | ||
isPlaying : Boolean [只读]
一个只读标志,如果当前正在播放效果的任一实例,则为 true;否则,则为 false。 | Effect | ||
perElementOffset : Number
在效果的第一个目标之后,其他效果目标的附加延迟(以毫秒为单位)。 | Effect | ||
playheadTime : Number
效果的当前时间位置。 | Effect | ||
relevantProperties : Array
一个属性名称 Array,执行过滤时将使用这些名称。 | Effect | ||
relevantStyles : Array
一个样式名称 Array,执行过滤时将使用这些名称。 | Effect | ||
repeatCount : int = 1
效果的重复次数。 | Effect | ||
repeatDelay : int = 0
重复播放效果前需要等待的时间(以毫秒为单位)。 | Effect | ||
startDelay : int = 0
开始播放效果前需要等待的时间(以毫秒为单位)。 | Effect | ||
suspendBackgroundProcessing : Boolean = false
如果为 true,则在播放效果时阻止所有背景处理。 | Effect | ||
target : Object
要应用此效果的对象。 | Effect | ||
targets : Array
一个对象 Array,这些对象都是效果的目标。 | Effect | ||
triggerEvent : Event
如果触发了某个效果,则此项目是由 EffectManager 传递给此 Effect 的 Event 对象;如果 EffectManager 当前没有播放此效果,则为 null。 | Effect |
方法 | 由以下参数定义 | ||
---|---|---|---|
TweenEffect(target:Object = null)
构造函数。 | TweenEffect | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
捕获效果目标上相关属性的当前值,并将这些值另存为结束值。 | Effect | ||
捕获另一组目标相关属性的当前值。在运行数据更改效果时,Flex 将使用此函数。
| Effect | ||
捕获效果目标上相关属性的当前值。 | Effect | ||
创建一个效果实例并对其进行初始化。 | Effect | ||
获取一个目标对象 Array,并对每个目标调用 createInstance() 方法。 | Effect | ||
删除实例中的事件侦听器,然后从实例列表中删除该实例。 | Effect | ||
将事件调度到事件流中。 | EventDispatcher | ||
中断当前正在播放的效果,立即跳转到该效果的末尾。 | Effect | ||
返回一个字符串 Array,其中每个 String 都是被此效果更改的属性的名称。 | Effect | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
暂停效果,直到调用 resume() 方法。 | Effect | ||
开始播放效果。 | Effect | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
在效果由 pause() 方法暂停后继续播放效果。 | Effect | ||
逆序播放效果;如果当前正在播放效果,则从该效果的当前位置开始逆序播放。 | Effect | ||
设置循环操作动态属性的可用性。 | Object | ||
停止播放效果,使效果目标保持当前状态。 | Effect | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
方法 | 由以下参数定义 | ||
---|---|---|---|
供 Effect 基础结构内部使用。 | Effect | ||
当效果实例完成播放时调用。 | Effect | ||
当效果实例开始播放时调用此方法。 | Effect | ||
当效果实例已被 stop() 方法调用停止时调用。 | Effect | ||
确定筛选效果实例所用的逻辑。 | Effect | ||
由 captureStartValues() 方法调用,用来从目标获得某个属性的值。 | Effect | ||
将效果的属性复制到效果实例。 | Effect | ||
当 TweenEffect 调度 TweenEvent 时调用此方法。 | TweenEffect |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
在其中一个效果实例完成播放时(既可以是实例实际完成播放时,也可以是通过调用 end() 方法中断效果时)调度。 | Effect | |||
当效果开始播放时调度。 | Effect | |||
在已停止效果时调度,仅当该效果已被 stop() 方法调用中断时才会发生。 | Effect | |||
当补间效果结束时调度。 | TweenEffect | |||
当开始播放补间效果时调度此事件,相当于首次调用 onTweenUpdate() 方法。 | TweenEffect | |||
每当补间效果更新目标时调度。 | TweenEffect |
easingFunction | 属性 |
public var easingFunction:Function = null
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
动画的缓动函数。此缓动函数用于在初始值和最终值之间进行插值。简单的缓动函数只能进行线性 interpolation,而比较高级的缓动函数可以创建加速和减速效果,使动画效果看起来更加自然。
如果未指定缓动函数,则使用基于 Math.sin()
方法的缓动函数。
该缓动函数位于 Robert Penner 编写的函数签名之后。该函数使用四个参数:第一个参数是“current time”,其中动画的开始时间是 0;第二个参数是动画开始时的初始值(一个 Number);第三个参数是结束值与初始值之间的差值;第四个参数是动画的持续时间。返回值是当前时间的插值。此值通常介于初始值和结束值之间。
此属性的值必须是一个函数对象。
Flex 在 mx.effects.easing 包中提供了一组缓动函数。
TweenEffect | () | 构造函数 |
tweenEventHandler | () | 方法 |
protected function tweenEventHandler(event:mx.events:TweenEvent):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当 TweenEffect 调度 TweenEvent 时调用此方法。如果覆盖此方法,请确保调用超级方法。
参数
event:mx.events:TweenEvent — TweenEvent 类型的事件对象。
|
tweenEnd | 事件 |
mx.events.TweenEvent
属性 TweenEvent.type =
mx.events.TweenEvent.TWEEN_END
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当补间效果结束时调度。此事件与调用 TweenEffectInstance.onTweenEnd()
方法相对应。
如果只播放一次补间效果,则此事件将与 effectEnd
事件同时发生。如果将补间效果配置为重复播放,则在每次重复播放效果结束时都会发生此事件,而在最后一次播放效果结束后发生 endEffect
事件。
TweenEvent.TWEEN_END
常量可为 tweenEnd
事件定义事件对象的 type
属性的值。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
value | 传递给 onTweenEnd() 方法的值。 |
tweenStart | 事件 |
mx.events.TweenEvent
属性 TweenEvent.type =
mx.events.TweenEvent.TWEEN_START
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当开始播放补间效果时调度此事件,相当于首次调用 onTweenUpdate()
方法。Flex 还会同时为此效果首次调度 tweenUpdate
事件。
Effect.effectStart
事件在 tweenStart
事件之前调度。
TweenEvent.TWEEN_START
常量可为 tweenStart
事件定义事件对象的 type
属性的值。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
value | 传递给 onTweenUpdate() 方法的值。 |
tweenUpdate | 事件 |
mx.events.TweenEvent
属性 TweenEvent.type =
mx.events.TweenEvent.TWEEN_UPDATE
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
每当补间效果更新目标时调度。此事件与调用 TweenEffectInstance.onTweenUpdate()
方法相对应。
TweenEvent.TWEEN_UPDATE
常量可为 tweenUpdate
事件定义事件对象的 type
属性的值。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
value | 传递给 onTweenUpdate() 方法的值。 |
<?xml version="1.0"?> <!-- Simple example to demonstrate the TweenEffect class. --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx: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; } ]]> </fx:Script> <fx:Declarations> <mx:Resize id="expand" target="{img}" widthTo="100" heightTo="200" duration="10000" tweenUpdate="tweenUpdateHandler(event);" tweenEnd="tweenUpdateHandler(event);"/> </fx:Declarations> <s:Panel title="Resize Effect Example" width="100%" height="100%" > <s:VGroup left="20" right="20" top="20" bottom="20"> <s:Label width="100%" color="blue" text="Use the Button controls to resize the image."/> <s:HGroup width="100%"> <mx:Image id="img" width="30" height="60" source="@Embed(source='assets/Nokia_6630.png')"/> <s:Label id="currentWidth" height="20" width="100%"/> </s:HGroup> <s:Button id="button1" label="Start" click="expand.play(); button1.enabled=false;"/> <s:Button label="Pause" click="expand.pause();"/> <s:Button label="Resume" click="expand.resume();"/> <s:Button label="Reverse" click="expand.reverse();"/> <s:Button label="End" click="expand.end();"/> <s:Button label="Reset" click="resetHandler();"/> </s:VGroup> </s:Panel> </s:Application>
Tue Jun 12 2018, 11:04 AM Z