| 包 | mx.effects |
| 类 | public class TweenEffect |
| 继承 | TweenEffect Effect EventDispatcher Object |
| 子类 | AnimateProperty, Blur, Dissolve, Fade, Glow, Move, Pause, Resize, Rotate, SeriesEffect, Zoom |
通过创建 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"
/>
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
![]() | className : String [只读 (read-only)] 效果类的名称,如“Fade”。 | Effect | |
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
![]() | customFilter : EffectTargetFilter 指定一个 EffectTargetFilter 类型的自定义滤镜对象,效果将使用此对象来确定播放效果的目标。 | Effect | |
![]() | duration : Number 效果的持续时间(以毫秒为单位)。 | Effect | |
| easingFunction : Function = null 动画的缓动函数。 | TweenEffect | ||
![]() | effectTargetHost : IEffectTargetHost 一个属性,您可以通过设置此属性访问数据效果基于列表的目标控件。 | Effect | |
![]() | filter : String 指定用于过滤效果目标的算法。 | Effect | |
![]() | hideFocusRing : Boolean 确定在开始播放效果时,效果是否应隐藏对焦环。 | Effect | |
![]() | instanceClass : Class 一个 Class 类型的对象,用于指定此效果类的效果实例类。 | Effect | |
![]() | isPlaying : Boolean [只读 (read-only)] 一个只读标志,如果当前正在播放效果的任一实例,则为 true;否则,则为 false。 | Effect | |
![]() | perElementOffset : Number 在效果的第一个目标之后,其它效果目标的附加延迟(以毫秒为单位)。 | Effect | |
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
![]() | 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 要应用此效果的 UIComponent 对象。 | Effect | |
![]() | targets : Array 一个 UIComponent 对象 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 | |
![]() | 检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| 方法 | 定义方 | ||
|---|---|---|---|
![]() | 供 Effect 基础结构内部使用。 | Effect | |
![]() | 当效果实例完成播放时调用。 | Effect | |
![]() | 当效果实例开始播放时调用此方法。 | Effect | |
![]() | 确定筛选效果实例所用的逻辑。 | Effect | |
![]() | 由 captureStartValues() 方法调用,用来从目标获得某个属性的值。 | Effect | |
![]() | 将效果的属性复制到效果实例。 | Effect | |
当 TweenEffect 调度 TweenEvent 时调用此方法。 | TweenEffect | ||
| 事件 | 摘要 | 定义方 | ||
|---|---|---|---|---|
![]() | [广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | ||
![]() | [广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | ||
![]() | 当效果完成播放时(既可以是效果实际完成播放时,也可以是通过调用 end() 方法中断效果时)调度。 | Effect | ||
![]() | 当效果开始播放时调度。 | 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.TweenEventmx.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.TweenEventmx.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.TweenEventmx.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() 方法的值。
|
<?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>