用于 Adobe® Flash® Platform 的 ActionScript® 3.0 参考
主页  |  隐藏包列表和类列表 |   |   |  新增内容  |  索引  |  附录  |  为什么显示为英语?
过滤条件: 正在从服务器检索数据...
正在从服务器检索数据...
fl.motion 

MotionBase  - AS3 Flash

fl.motion
public class MotionBase
继承MotionBase Inheritance Object
子类 Motion

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

MotionBase 类存储可应用于可视对象的关键帧动画序列。动画数据包括位置、缩放、旋转、倾斜、颜色、滤镜和缓动。MotionBase 类包含一些方法,可以检索特定的关键帧点处的数据。若要获得关键帧之间的插补值,请使用 Motion 类。

查看示例

相关 API 元素



公共属性
 属性由以下参数定义
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  duration : int
控制 Motion 实例的时间长度(以帧为单位)。
MotionBase
  is3D : Boolean
指定此动画是否包含 3D 属性的更改。
MotionBase
  keyframes : Array
一个关键帧数组,定义 Motion 在不同时间的行为。
MotionBase
公共方法
 方法由以下参数定义
  
MotionBase(xml:XML = null)
MotionBase 实例的构造函数。
MotionBase
  
addFilterPropertyArray(index:int, name:String, values:Array, startFrame:int = -1, endFrame:int = -1):void
修改 Motion 对象的所有对应关键帧中的滤镜属性。
MotionBase
  
向 Motion 实例添加关键帧对象。
MotionBase
  
addPropertyArray(name:String, values:Array, startFrame:int = -1, endFrame:int = -1):void
将值数组存储在与 Motion 类声明的属性对应的关键帧中。
MotionBase
  
检索 Motion 实例中特定时间索引处的插补 ColorTransform 对象。
MotionBase
  
getCurrentKeyframe(index:int, tweenableName:String = ""):KeyframeBase
检索 Motion 实例中特定帧位置处当前处于活动状态的关键帧。
MotionBase
  
检索 Motion 实例中特定时间索引处的插补滤镜数组。
MotionBase
  
返回动画帧指定索引位置的 Matrix 对象。
MotionBase
  
返回动画帧指定索引位置的 Matrix3D 对象。
MotionBase
  
getNextKeyframe(index:int, tweenableName:String = ""):KeyframeBase
检索 Motion 实例中位于特定帧之后的下一个关键帧。
MotionBase
  
getValue(index:Number, tweenableName:String):Number
检索某个时间点处的动画属性值。
MotionBase
 Inherited
表示对象是否已经定义了指定的属性。
Object
  
initFilters(filterClasses:Array, gradientSubarrayLengths:Array, startFrame:int = -1, endFrame:int = -1):void
初始化目标对象的滤镜列表并将滤镜列表复制到 Motion 对象的每个 Keyframe 实例。
MotionBase
 Inherited
表示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
overrideTargetTransform(scale:Boolean = true, skew:Boolean = true, rotate:Boolean = true):void
MotionBase
 Inherited
表示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
  
setValue(index:int, tweenableName:String, value:Number):void
设置特定可补间属性在 Motion 实例中给定时间索引处的值。
MotionBase
 Inherited
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
  
在 addPropertyArray() 方法提供动画的数据时,旋转目标对象。
MotionBase
 Inherited
返回指定对象的原始值。
Object
属性详细信息

duration

属性
duration:int

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

控制 Motion 实例的时间长度(以帧为单位)。持续时间不能少于 Motion 实例的关键帧所占用的时间。

默认值为 0。



实现
    public function get duration():int
    public function set duration(value:int):void

is3D

属性 
is3D:Boolean

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 10, AIR 1.5, AIR 1.0

指定此动画是否包含 3D 属性的更改。如果为 true,则此动画包含 3D 属性的更改。

默认值为 false。



实现
    public function get is3D():Boolean
    public function set is3D(value:Boolean):void

keyframes

属性 
public var keyframes:Array

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

一个关键帧数组,定义 Motion 在不同时间的行为。 此属性是一个稀疏数组,其中,关键帧放置在数组中与其自身的索引相匹配的索引位置。 一个在 0 和 5 索引位置具有关键帧的 Motion 对象将具有长度为 6 的关键帧数组。 数组中的索引 0 和 5 处各包含一个关键帧,索引 1 到 4 处则包含空值。

构造函数详细信息

MotionBase

()构造函数
public function MotionBase(xml:XML = null)

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

MotionBase 实例的构造函数。默认情况下,会自动创建一个初始关键帧,具有默认 Transform 属性。

参数
xml:XML (default = null) — 定义 Motion 实例的 E4X XML 对象(可选)。
方法详细信息

addFilterPropertyArray

()方法
public function addFilterPropertyArray(index:int, name:String, values:Array, startFrame:int = -1, endFrame:int = -1):void

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

修改 Motion 对象的所有对应关键帧中的滤镜属性。使用此方法前需调用 initFilters()。值在数组中的顺序决定着向所有关键帧的滤镜属性所赋予的各个值。对于指定 values 数组中的每个非空值,此方法将会查找与数组中值的索引位置相对应的关键帧,并在该关键帧中存储滤镜的属性名称/值对。

参数

index:int — 滤镜数组中从零开始的索引位置。
 
name:String — 要存储在每个关键帧中的滤镜属性的名称。
 
values:Arrayname 参数中指定的属性的值数组。每个非 null 值均赋给与该值在数组中的索引对应的关键帧中的滤镜。
 
startFrame:int (default = -1)
 
endFrame:int (default = -1)

相关 API 元素

addKeyframe

()方法 
public function addKeyframe(newKeyframe:KeyframeBase):void

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

向 Motion 实例添加关键帧对象。

参数

newKeyframe:KeyframeBase — 已设置了 index 属性的 Keyframe 对象。

相关 API 元素

addPropertyArray

()方法 
public function addPropertyArray(name:String, values:Array, startFrame:int = -1, endFrame:int = -1):void

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

将值数组存储在与 Motion 类声明的属性对应的关键帧中。值在数组中的顺序确定将哪个值分配给哪个关键帧。对于给定的 values 数组中的每个非空值,此方法查找与该值在数组中的索引位置对应的关键帧,或者为该索引位置创建新关键帧,并将属性名称/值对存储在关键帧中。

参数

name:String — 要存储在每个关键帧中的 Motion 类属性的名称。
 
values:Arrayname 参数中指定的属性的值数组。将每个非空值分配到与该值在数组中的顺序对应的关键帧。
 
startFrame:int (default = -1)
 
endFrame:int (default = -1)

相关 API 元素

getColorTransform

()方法 
public function getColorTransform(index:int):flash.geom:ColorTransform

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

检索 Motion 实例中特定时间索引处的插补 ColorTransform 对象。

参数

index:int — Motion 实例中帧的时间索引(大于等于零的整数)。

返回
flash.geom:ColorTransform — 插补的 ColorTransform 对象。

相关 API 元素

getCurrentKeyframe

()方法 
public function getCurrentKeyframe(index:int, tweenableName:String = ""):KeyframeBase

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

检索 Motion 实例中特定帧位置处当前处于活动状态的关键帧。 非关键帧的值派生自它前面的关键帧。

此方法还可以按特定可补间属性的名称来筛选值。 您可以针对 x 查找当前处于活动状态的关键帧,通常都不是当前活动关键帧。

参数

index:int — Motion 实例中帧的索引(大于等于零的整数)。
 
tweenableName:String (default = "") — 可补间属性的可选名称(如 "x""rotation")。

返回
KeyframeBase — 在所提供的帧索引位置处或其前面的位置处最匹配的关键帧。

相关 API 元素

getFilters

()方法 
public function getFilters(index:Number):Array

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

检索 Motion 实例中特定时间索引处的插补滤镜数组。

参数

index:Number — Motion 中帧的时间索引(大于等于零的整数)。

返回
Array — 插补的滤镜数组。如果没有适用的滤镜,则返回空数组。

相关 API 元素

getMatrix

()方法 
public function getMatrix(index:int):Matrix

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 10, AIR 1.5, AIR 1.0

返回动画帧指定索引位置的 Matrix 对象。

参数

index:int — 包含 矩阵的动画帧的从零开始的索引位置。

返回
Matrix — Matrix 对象或 null 值。此方法可以返回 null 值,即使 MotionBase.is3Dfalse 也一样,因为在没有 Matrix 对象的情况下,可以使用其他补间动画属性更改。

相关 API 元素

getMatrix3D

()方法 
public function getMatrix3D(index:int):Object

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 10, AIR 1.5, AIR 1.0

返回动画帧指定索引位置的 Matrix3D 对象。

参数

index:int — 包含 3D 矩阵的动画帧的从零开始的索引位置。

返回
Object — Matrix3D 对象或 null 值。此方法可以返回一个 null 值(即使 MotionBase.is3Dtrue),因为没有 Matrix3D 对象也可以使用其它 3D 补间动画属性的变更。

相关 API 元素

getNextKeyframe

()方法 
public function getNextKeyframe(index:int, tweenableName:String = ""):KeyframeBase

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

检索 Motion 实例中位于特定帧之后的下一个关键帧。 如果某个帧不是关键帧,并且位于某个补间的中间,则此方法的值会从前面的关键帧和后面的关键帧派生。

此方法还允许您按照特定的可补间属性的名称进行筛选,以查找属性的下一个关键帧(可能与通常的下一个关键帧不相同)。

参数

index:int — Motion 实例中帧的索引(大于等于零的整数)。
 
tweenableName:String (default = "") — 可补间属性的可选名称(如 "x""rotation")。

返回
KeyframeBase — 所提供帧索引位置之后最匹配的关键帧。

相关 API 元素

getValue

()方法 
public function getValue(index:Number, tweenableName:String):Number

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

检索某个时间点处的动画属性值。

参数

index:Number — Motion 实例中帧的时间索引(大于等于零的整数)。
 
tweenableName:String — 可补间属性的名称(如 "x""rotation")。

返回
Number — 在 tweenableName 参数中指定的属性的数字值。

相关 API 元素

initFilters

()方法 
public function initFilters(filterClasses:Array, gradientSubarrayLengths:Array, startFrame:int = -1, endFrame:int = -1):void

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

初始化目标对象的滤镜列表并将滤镜列表复制到 Motion 对象的每个 Keyframe 实例。

参数

filterClasses:Array — 滤镜类数组。数组中的每个项都是占用该索引的滤镜类型的完全限定类名(字符串形式)。
 
gradientSubarrayLengths:Array — 一个数字数组,包含了与动画的滤镜列表中将包括的每个滤镜(filterClasses 数组中的每个类名称)对应的值。仅当位于 filterClasses 数组中相同索引位置的滤镜类条目是 GradientGlowFilter 或 GradientBevelFilter 时,才会使用 gradientSubarrayLengths 数组中的值。gradientSubarrayLengths 数组中的对应值是一个数字,它决定着多个数组的长度,这些数组对 GradientGlowFilter 和 GradientBevelFilter 构造函数的 colorsalphasratios 参数进行初始化。
 
startFrame:int (default = -1)
 
endFrame:int (default = -1)

相关 API 元素

overrideTargetTransform

()方法 
public function overrideTargetTransform(scale:Boolean = true, skew:Boolean = true, rotate:Boolean = true):void

参数

scale:Boolean (default = true)
 
skew:Boolean (default = true)
 
rotate:Boolean (default = true)

setValue

()方法 
public function setValue(index:int, tweenableName:String, value:Number):void

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 9.0.28.0, AIR 1.0

设置特定可补间属性在 Motion 实例中给定时间索引处的值。 如果在该索引位置处不存在关键帧,则会自动创建一个。

参数

index:int — Motion 实例中帧的时间索引(大于零的整数)。如果索引等于零,则不会进行任何更改。变形属性是相对于目标对象的起始变形值而言的,因此,第一帧的值(零索引值)始终为默认值,且不应该进行更改。
 
tweenableName:String — 以字符串形式表示的可补间属性的名称(如“x”“rotation”)。
 
value:Number — 可补间属性的新值。

相关 API 元素

useRotationConcat

()方法 
public function useRotationConcat(index:int):Boolean

语言版本: ActionScript 3.0
产品版本: Flash CS3
运行时版本: Flash Player 10, AIR 1.5, AIR 1.0

addPropertyArray() 方法提供动画的数据时,旋转目标对象。

参数

index:int — 动画帧的索引位置。

返回
Boolean — 指示目标对象是否将使用来自 KeyframeBase.rotationConcat 的已存储属性进行旋转。

相关 API 元素

MotionBaseExample.as

此示例显示如何使用 MotionBase 和 AnimatorFactory 类使 sprite 具有动画效果。MotionBase 对象被赋给 x 和 y 坐标数组,然后用于创建 AnimatorFactory 对象。AnimatorFactory 的最终目标是实心矩形形式的 sprite 对象。
package 
{
     import flash.display.MovieClip;
     import flash.display.Sprite;
     import fl.motion.AnimatorFactory;
     import fl.motion.MotionBase;
     import flash.geom.Point;
    
     public class  MotionBaseExample extends MovieClip
     {
          private var motionBase:MotionBase;
          private var animFactory:AnimatorFactory;
          private var size:uint    = 100;
          private var bgColor:uint = 0xFFCC00;

          public function MotionBaseExample():void
          {
               var boxObj:sprite = new Sprite();
               boxObj.graphics.beginFill(bgColor);
               boxObj.graphics.drawRect(0, 0, size, size);
               boxObj.graphics.endFill();
               addChild(boxObj);

               motionBase = new MotionBase();
               motionBase.duration = 20;
               motionBase.addPropertyArray("x",[0,50,95,134,169,199,225,247,265,280]);
               motionBase.addPropertyArray("y",[0,1,0,4,12,21,32,44,52,38]);
               animFactory = new AnimatorFactory(motionBase);
               animFactory.transformationPoint = new Point(2, 2);
               animFactory.addTarget(boxObj, 0);
          }
     }    
}




[ X ]为什么显示为英语?
《ActionScript 3.0 参考》中的内容以英语显示

《ActionScript 3.0 参考》中的部分内容未翻译成所有语言。当某个语言元素未翻译时,将显示为英语。例如,ga.controls.HelpBox 类未翻译成任何语言。因此在简体中文版的参考中,ga.controls.HelpBox 类显示为英语。