包 | fl.transitions |
类 | public class Tween |
继承 | Tween EventDispatcher Object |
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
Tween 类还使您能够指定各种缓动方法。 “缓动”是动画运行期间的渐进加速和渐进减速效果,有助于使动画显得更逼真。 fl.transitions.easing 包提供了很多缓动方法(包括这种加速和减速的等式),它们会相应地更改缓动动画。
若要使用 Tween 类的这些方法和属性,请将 new
运算符用于构造函数来创建该类的一个实例,并指定一个缓动方法作为参数。 例如:
import fl.transitions.Tween; import fl.transitions.easing.*; var myTween:Tween = new Tween(myObject, "x", Elastic.easeOut, 0, 300, 3, true);
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
begin : Number = NaN
补间开始前目标对象的指定属性的初始值。 | Tween | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
duration : Number
以帧或秒为单位的补间动画的持续时间。 | Tween | ||
finish : Number
一个数字,指示要补间的目标对象属性的结束值。 | Tween | ||
FPS : Number
计入补间动画的每秒的帧数。 | Tween | ||
func : Function
用于补间的缓动函数。 | Tween | ||
isPlaying : Boolean = false
指示当前是否正在播放补间动画。 | Tween | ||
looping : Boolean = false
指示补间是否将循环。 | Tween | ||
obj : Object = null
正在进行补间的目标对象。 | Tween | ||
position : Number
目标对象补间属性的当前值。 | Tween | ||
prop : String
受目标对象的补间影响的属性的名称。 | Tween | ||
time : Number
动画持续时间内的当前时间。 | Tween | ||
useSeconds : Boolean = false
指示补间是否播放一段时间或帧数。 | Tween |
方法 | 由以下参数定义 | ||
---|---|---|---|
Tween(obj:Object, prop:String, func:Function, begin:Number, finish:Number, duration:Number, useSeconds:Boolean = false)
创建 Tween 类的实例。 | Tween | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
指示补间动画从当前动画点继续补间到一个新的结束和持续时间点。 | Tween | ||
将事件调度到事件流中。 | EventDispatcher | ||
将补间动画直接快进到补间动画的最终值。 | Tween | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将补间动画快进到已停止的动画的下一帧。 | Tween | ||
从已停止动画的当前停止点播放补间动画的前一帧。 | Tween | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
继续播放已停止的补间动画。 | Tween | ||
使补间动画的播放后退到其开始值。 | Tween | ||
设置循环操作动态属性的可用性。 | Object | ||
从开始点开始播放补间动画。 | Tween | ||
在当前值停止播放补间动画。 | Tween | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher | ||
指示补间动画按与其补间属性最后一次增加的方向相反的方向播放。 | Tween |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
指示 Tween 已更改并且屏幕已更新。 | Tween | |||
指示 Tween 已到达结尾并已完成。 | Tween | |||
指示 Tween 在循环模式中已从头开始重新播放。 | Tween | |||
指示 Tween 在暂停后继续播放。 | Tween | |||
指示动画已经开始播放。 | Tween | |||
指示由于显式调用 Tween.stop(),Tween 已停止。 | Tween |
begin | 属性 |
public var begin:Number = NaN
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
补间开始前目标对象的指定属性的初始值。
duration | 属性 |
finish | 属性 |
FPS | 属性 |
FPS:Number
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
计入补间动画的每秒的帧数。 默认情况下,使用当前舞台帧频计算补间动画。 设置此属性会重新计算每秒向 Tween.FPS
属性显示的动画属性中的增加数量,而不是当前舞台帧频。 设置 Tween.FPS 属性不会更改舞台的实际帧频。
注意:除非首先明确设置 Tween.FPS
属性,否则该属性返回 undefined。
实现
public function get FPS():Number
public function set FPS(value:Number):void
示例 ( 如何使用本示例 )
import fl.transitions.Tween; import fl.transitions.easing.*; var tween:Tween = new Tween(mc, "x", Elastic.easeOut, 0, 300, 3, true); tween.FPS = 60; mc.addEventListener(MouseEvent.CLICK, onClick); function onClick(evt:MouseEvent):void { tween.start(); }
func | 属性 |
public var func:Function
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
用于补间的缓动函数。
isPlaying | 属性 |
public var isPlaying:Boolean = false
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示当前是否正在播放补间动画。
looping | 属性 |
public var looping:Boolean = false
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示补间是否将循环。 如果值为 true
,则每次补间结束后都将重新开始,无限重复。 如果值为 false
,则补间将只播放一次。
obj | 属性 |
public var obj:Object = null
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
正在进行补间的目标对象。
position | 属性 |
prop | 属性 |
public var prop:String
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
受目标对象的补间影响的属性的名称。
time | 属性 |
useSeconds | 属性 |
public var useSeconds:Boolean = false
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示补间是否播放一段时间或帧数。 true
值将使补间动画播放 duration
属性所指定的秒数。 false
将使补间动画播放一定的帧数。
Tween | () | 构造函数 |
public function Tween(obj:Object, prop:String, func:Function, begin:Number, finish:Number, duration:Number, useSeconds:Boolean = false)
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
创建 Tween 类的实例。 此构造函数与 new
运算符一起使用:var myTween:Tween = new Tween()
。
obj:Object — Tween 作为目标的对象。
| |
prop:String — 要影响的属性的名称(obj 参数值)。
| |
func:Function — 要使用的缓动函数的名称。
| |
begin:Number — prop 参数的开始值。
| |
finish:Number — 一个指示 prop 参数(要补间的目标对象属性)的结束值的数字。
| |
duration:Number — 动画的时间长度;如果为负或被省略,则设置为 infinity 。
| |
useSeconds:Boolean (default = false ) — 一个标志,指定是否使用秒数而不是帧数。 如果为 true ,则函数使用秒,如果为 false ,则使用相对于 duration 参数中指定的值的帧。
|
相关 API 元素
continueTo | () | 方法 |
public function continueTo(finish:Number, duration:Number):void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示补间动画从当前动画点继续补间到一个新的结束和持续时间点。
参数
finish:Number — 一个数字,指示要补间的目标对象属性的结束值。
| |
duration:Number — 一个指示补间动画的时间长度或帧数的数字;如果 Tween.start() useSeconds 参数设置为 true ,则以时间长度为度量单位,如果设置为 false ,则以帧数为度量单位。
|
相关 API 元素
fforward | () | 方法 |
public function fforward():void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
将补间动画直接快进到补间动画的最终值。
nextFrame | () | 方法 |
public function nextFrame():void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
将补间动画快进到已停止的动画的下一帧。 使用 Tween.stop()
方法停止补间动画后,使用该方法可以将补间动画一次快进一帧。
注意:该方法只能用于基于帧的补间。 通过将 useSeconds
参数设置为 false
,可以在创建时将补间设置为基于帧。
prevFrame | () | 方法 |
resume | () | 方法 |
public function resume():void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
继续播放已停止的补间动画。 通过使用 Tween.stop()
方法停止补间动画后,使用该方法可以继续执行补间动画。
注意:该方法只能用于基于帧的补间。 通过将 useSeconds
参数设置为 false,可以在创建时将补间设置为基于帧。
rewind | () | 方法 |
public function rewind(t:Number = 0):void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
使补间动画的播放后退到其开始值。 如果在补间动画仍在播放期间调用 Tween.rewind()
,则补间动画将后退到其开始值,然后继续播放。 如果在补间动画已停止或已结束其动画期间调用 Tween.rewind()
,则补间动画将后退到其开始值,并保持停止状态。 通过使用 Tween.stop()
方法停止补间动画后,使用该方法可以将补间动画后退到它的开始点,或者在播放补间动画时使它后退。
参数
t:Number (default = 0 ) — 开始值。
|
start | () | 方法 |
public function start():void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
从开始点开始播放补间动画。此方法用于在补间动画停止或已结束其动画后,从其动画的开始处重新开始补间。
stop | () | 方法 |
public function stop():void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
在当前值停止播放补间动画。
yoyo | () | 方法 |
public function yoyo():void
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示补间动画按与其补间属性最后一次增加的方向相反的方向播放。 如果在 Tween 对象的动画完成之前调用此方法,则该动画将立即跳至其播放末尾,然后从该点以相反方向播放。 通过在 TweenEvent.MOTION_FINISH
事件处理函数中调用 Tween.yoyo()
方法,可以获得动画完成其整个播放后反转其整个播放的效果。 此过程可确保 Tween.yoyo()
方法的反转效果直到当前补间动画完成后才会开始。
motionChange | 事件 |
fl.transitions.TweenEvent
属性 TweenEvent.type =
fl.transitions.TweenEvent.MOTION_CHANGE
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示 Tween 已更改并且屏幕已更新。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 属性的值。 |
target | 调度该事件的对象;它不一定是侦听该事件的对象。使用 currentTarget 属性始终可以访问侦听该事件的对象。 |
time | 事件发生时的 Tween 时间。 |
position | 当事件发生时,由 Tween 控制的属性的值。 |
motionFinish | 事件 |
fl.transitions.TweenEvent
属性 TweenEvent.type =
fl.transitions.TweenEvent.MOTION_FINISH
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示 Tween 已到达结尾并已完成。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 属性的值。 |
target | 调度该事件的对象;它不一定是侦听该事件的对象。使用 currentTarget 属性始终可以访问侦听该事件的对象。 |
time | 事件发生时的 Tween 时间。 |
position | 当事件发生时,由 Tween 控制的属性的值。 |
motionLoop | 事件 |
fl.transitions.TweenEvent
属性 TweenEvent.type =
fl.transitions.TweenEvent.MOTION_LOOP
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示 Tween 在循环模式中已从头开始重新播放。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 属性的值。 |
target | 调度该事件的对象;它不一定是侦听该事件的对象。使用 currentTarget 属性始终可以访问侦听该事件的对象。 |
time | 事件发生时的 Tween 时间。 |
position | 当事件发生时,由 Tween 控制的属性的值。 |
motionResume | 事件 |
fl.transitions.TweenEvent
属性 TweenEvent.type =
fl.transitions.TweenEvent.MOTION_RESUME
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示 Tween 在暂停后继续播放。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 属性的值。 |
target | 调度该事件的对象;它不一定是侦听该事件的对象。使用 currentTarget 属性始终可以访问侦听该事件的对象。 |
time | 事件发生时的 Tween 时间。 |
position | 当事件发生时,由 Tween 控制的属性的值。 |
motionStart | 事件 |
fl.transitions.TweenEvent
属性 TweenEvent.type =
fl.transitions.TweenEvent.MOTION_START
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示动画已经开始播放。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 属性的值。 |
target | 调度该事件的对象;它不一定是侦听该事件的对象。使用 currentTarget 属性始终可以访问侦听该事件的对象。 |
time | 事件发生时的 Tween 时间。 |
position | 当事件发生时,由 Tween 控制的属性的值。 |
motionStop | 事件 |
fl.transitions.TweenEvent
属性 TweenEvent.type =
fl.transitions.TweenEvent.MOTION_STOP
语言版本: | ActionScript 3.0 |
产品版本: | Flash CS3 |
运行时版本: | Flash Player 9, AIR 1.0 |
指示由于显式调用
Tween.stop()
,Tween 已停止。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 属性的值。 |
target | 调度该事件的对象;它不一定是侦听该事件的对象。使用 currentTarget 属性始终可以访问侦听该事件的对象。 |
time | 事件发生时的 Tween 时间。 |
position | 当事件发生时,由 Tween 控制的属性的值。 |
userNumber
中,然后作为形状宽度的参数传递给 Tween 构造函数。
注意:对于 fl.transitions 包中的类,需要使用 import
语句,即使在 Flash Professional 中的“动作”面板中,也是如此。(对于大多数类,不需要在“动作”面板中使用 import 语句。)在包级别使用 * 来包括包中的所有类,或单独导入每个类。
import fl.transitions.Tween; import fl.transitions.easing.*; //create a Sprite instance var mySprite:Sprite = new Sprite() // create an input text field var myTextField:TextField = new TextField(); myTextField.type = TextFieldType.INPUT; myTextField.width = 180; myTextField.height = 20; myTextField.x = 20; myTextField.y = 140; myTextField.border = true; myTextField.text = "Type a number here and press Enter"; myTextField.restrict = "0-9"; addChild(myTextField); // add a listener when the user clicks in the text field myTextField.addEventListener(MouseEvent.CLICK, fieldClickHandler); // add a listener for a key press myTextField.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); // clear the text field when the user clicks in it to enter a value function fieldClickHandler(event:MouseEvent):void { myTextField.text = ""; } // if the key pressed is the Enter key // change the values of the box's width based on the value provided function keyDownHandler(event:KeyboardEvent):void { if (event.keyCode == Keyboard.ENTER) { mySprite.graphics.clear(); var userNumber:Number = new Number(myTextField.text); mySprite.graphics.beginFill(0x666999); mySprite.graphics.drawRect(0, 0, 40, 120); addChild(mySprite); //provide tween values, including passing the variable userNumber for the width at //the end of the tween var myTween:Tween = new Tween(mySprite, "width", Elastic.easeOut, 0, userNumber, 4, true); } }
import fl.transitions.Tween; import fl.transitions.easing.*; //create a Sprite instance var mySprite:Sprite = new Sprite() // create an input text field var myTextField:TextField = new TextField(); myTextField.type = TextFieldType.INPUT; myTextField.width = 180; myTextField.height = 20; myTextField.x = 20; myTextField.y = 140; myTextField.border = true; myTextField.text = "Type a number here and press Enter"; myTextField.restrict = "0-9"; addChild(myTextField); // add a listener when the user clicks in the text field myTextField.addEventListener(MouseEvent.CLICK, fieldClickHandler); // add a listener for a key press myTextField.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); // clear the text field when the user clicks in it to enter a value function fieldClickHandler(event:MouseEvent):void { myTextField.text = ""; } // if the key pressed is the Enter key // change the values of the box's width based on the value provided function keyDownHandler(event:KeyboardEvent):void { if (event.keyCode == Keyboard.ENTER) { mySprite.graphics.clear(); var userNumber:Number = new Number(myTextField.text); // Set up drawing data // stroke object var myStroke:GraphicsStroke = new GraphicsStroke(2); myStroke.joints = JointStyle.MITER; myStroke.fill = new GraphicsSolidFill(0x102020); // solid stroke // fill object var myFill:GraphicsGradientFill = new GraphicsGradientFill(); myFill.colors = [0xEEFFEE, 0x0000FF]; myFill.matrix = new Matrix(); myFill.matrix.createGradientBox(300, 300, 0); // path object var myPath:GraphicsPath = new GraphicsPath(new Vector.<int>(), new Vector.<Number>()); myPath.commands.push(1,2,2,2,2); myPath.data.push(0,0, 240,0, 240,60, 0,60, 0,0); // combine the objects for a complete drawing var myDrawing:Vector.<IGraphicsData> = new Vector.<IGraphicsData>(); myDrawing.push(myStroke, myFill, myPath); // render the drawing mySprite.graphics.drawGraphicsData(myDrawing); addChild(mySprite); //provide tween values, including passing the variable userNumber for the width at //the end of the tween var myTween:Tween = new Tween(mySprite, "width", Elastic.easeOut, 0, userNumber, 4, true); } }
Tue Jun 12 2018, 11:04 AM Z