可以使用 XML 和 fl.motion 包中的 ActionScript 类来描述补间动画。Adobe Flash CS3 具有“将动作复制为 ActionScript”命令,可在时间轴上生成基于补间动画的 XML 和 ActionScript,以在其它元件或其它项目中使用。也可以编写自己的补间动画的脚本。只要编译时在类路径中具有 fl.motion 类,就可将补间动画应用于指定的显示对象。有关动画类的详细信息,请参见 fl.motion 包。支持 XML 的元素对应于《ActionScript 3.0 语言和组件参考》中的类和属性。
XML 元素层次结构如下所示:
下表简要总结了可以为动画对象分配的 XML 元素和属性。有关每个条目的详细信息,请参见类中列出的与每个元素对应的属性:
元素 | 属性 | 类型 | 说明 |
---|---|---|---|
Motion |
定义 Motion 实例,以便 Flash 可以分配用于描述补间动画特性的属性。请参见 fl.motion.Motion 类。 | ||
duration |
Number | 所选补间动画的帧数。请参见 fl.motion.Motion.duration 属性。 | |
source |
Source 元素所需的父标签。此标签没有属性,但编译器在处理 Source 元素和其属性时需要该标签。 | ||
Source |
包含与动画相关的原始可视对象的属性。请参见 fl.motion.Source 类。 | ||
frameRate |
Number | 为包含从 Flash CS3 中复制的原始动画的 SWF 文件设置的每秒帧数 (fps)。该值对另一个 SWF 文件的 ActionScript 实现没有任何影响。请参见 fl.motion.Source.frameRate 属性。 | |
x |
Number | 位于从 Flash CS3 复制的原始补间动画的开始位置的元件实例变形点的 x 坐标。 | |
y |
Number | 位于从 Flash CS3 复制的原始补间动画的开始位置的元件实例变形点的 y 坐标。 | |
scaleX |
Number | 小数值形式的水平缩放百分比。该值通常在 0 到 1 之间,但可以大于 1 或小于 0。例如,可以将 scaleX 设置为 -1 以翻转对象,或设置为 3 以将原始大小放大 3 倍。 |
|
scaleY |
Number | 小数值形式的垂直缩放百分比。该值通常在 0 到 1 之间,但可以大于 1 或小于 0。例如,可以将 scaleY 设置为 -1 以翻转对象,或设置为 3 以将原始大小放大 3 倍。 |
|
skewX |
Number | 沿着水平轴剪切的角度(以度为单位)。如果 skewX 和 skewY 值相等,则它们可由 rotation 属性替换。 |
|
skewY |
Number | 沿着垂直轴剪切的角度(以度为单位)。如果 skewX 和 skewY 值相等,则它们可由 rotation 属性替换。 |
|
rotation |
Number | 初始帧的旋转角度。 | |
elementType |
String | 补间动画中使用的可视对象的类型。可能的值包括:“movie clip”、“button”、“graphic”、“rectangle object”、“oval object”、“drawing object”、“group”、“bitmap”、“compiled clip”、“video”和“text”。 | |
symbolName |
String | Adobe Flash CS3 文档库中的元件名称(如果该元件存在),因为原始可视对象不能为元件实例。 | |
dimensions |
包含一个标签,它使用 geom 命名空间来描述补间元件的边框。 |
||
geom:Rectangle |
flash.geom 包中的对象。 | 定义边框。可以添加与 flash.geom.Rectangle 对象的属性 (property) 相对应的属性 (attribute)。例如:
|
|
transformationPoint |
包含一个标签,它使用 geom 命名空间来描述补间元件的变形点。 |
||
geom:Point |
flash.geom 包中的对象。 | 变形点的坐标是按边框尺寸(geom:Rectangle 元素的值)的百分比定义的。如果变形点是边框的左上角,则坐标为 (0, 0)。如果变形点是边框的右下角,则坐标为 (1, 1)。这些值允许将变形点一致应用于不同比例的对象和注册点。变形点可以位于边框之外,在这种情况下,坐标可能小于 0 或大于 1。 |
|
Keyframe |
包含与时间轴上关键帧相对应的信息。 | ||
blank |
Boolean | 指示关键帧为空。 | |
index |
Number | 表示关键帧的唯一整数值。第一个关键帧索引始终为 0。必须以索引值的升序来指定 XML 中的关键帧。 | |
label |
String | 一个可选字符串,用于描述关键帧并与时间轴上的帧标签相对应。 | |
tweenSync |
Boolean | 将同步设置切换为打开 ("true" ) 和关闭 ("false" )。“同步”重新计算补间的帧数,以与在时间轴上分配给补间的帧数相匹配。此属性不影响 ActionScript 动画,因为 ActionScript 不能控制图形元件。XML 属性只能由 Adobe Flash CS3 的“复制动画”和“粘贴动画”命令来使用。如果从 XML 中省略,则默认值为 true 。 |
|
tweenSnap |
Boolean | 将“贴紧设置”切换为打开 ("true" ) 和关闭 ("false" )。“贴紧”根据元件的注册点将元件附加到运动路径。此属性不影响 ActionScript 动画,因为 ActionScript 不能控制图形元件。XML 属性只能由 Adobe Flash CS3 的“复制动画”和“粘贴动画”命令来使用。如果从 XML 中省略,则默认值为 true 。 |
|
x |
Number | 当前关键帧上元件实例的中心点的 x 坐标。 | |
y |
Number | 当前关键帧上元件实例的中心点的 y 坐标。 | |
scaleX |
Number | 以 0 到 1 之间的小数值表示的水平缩放百分比,该值通常在 0 到 1 之间,但可以大于 1 或小于 0。例如,可以将 scaleX 设置为 -1 以翻转对象,或设置为 3 以将原始大小放大 3 倍。 |
|
scaleY |
Number | 以 0 到 1 之间的小数值表示的垂直缩放百分比,该值通常在 0 到 1 之间,但可以大于 1 或小于 0。例如,可以将 scaleY 设置为 -1 以翻转对象,或设置为 3 以将原始大小放大 3 倍。 |
|
skewX |
Number | 沿着水平轴剪切的角度(以度为单位)。如果 skewX 和 skewY 值相等,则它们可由 rotation 属性替换。 |
|
skewY |
Number | 沿着垂直轴剪切的角度(以度为单位)。如果 skewX 和 skewY 值相等,则它们可由 rotation 属性替换。 |
|
rotation |
Number | 当前帧的旋转角度。 | |
rotateDirection |
String | 指定补间元素如何旋转。可能的值包括“auto”、“none”、“cw”、“ccw”。如果从 XML 中省略,则默认值为“auto”。 | |
rotateTimes |
uint | 除任何现有旋转外,还将旋转添加到补间元素中。该旋转取决于 rotateDirection 属性的值,必须将其设置为“cw”或“ccw”。rotateTimes 值必须是大于或等于零的整数。请参见 fl.motion.Keyframe.rotateTimes 属性。 |
|
tweenScale |
Boolean | 如果为 false ,则阻止在补间期间更改缩放。如果从 XML 中省略,则默认值为 true 。 |
|
cacheAsBitmap |
Boolean | 如果从 XML 中省略,则默认值为 false 。 |
|
blendMode |
String | 可能的值包括“normal”、“layer”、“multiply”、“screen”、“overlay”、“hardlight”、“lighten”、“darken”、“difference”、“add”、“subtract”、“invert”、“alpha”和“erase”。如果从 XML 中省略,则默认值为“normal”。 | |
orientToPath |
Boolean | 如果从 XML 中省略,则默认值为 false 。 |
|
color |
Color 元素所需的父标签。此标签没有属性,但编译器需要使用该标签来处理 Color 元素及其属性。 | ||
Color |
包含颜色变化的设置。Flash 元件实例有五种颜色模式:none 、alpha 、tint 、brightness 和 advanced 。对于不转换 ( 对于 对于 对于 对于 |
||
brightness |
Number | 应用亮度通道的百分比在 -1 和 1 之间,其中 -1 为全黑而 1 为全白。 | |
tintColor |
Hexadecimal | 表示要应用的颜色的十六进制颜色值。 | |
alphaMultiplier |
Number | 应用 Alpha 通道的百分比(0 到 1 之间的小数值)。 | |
redMultiplier |
Number | 应用颜色的百分比(0 到 1 之间的小数值)。 | |
greenMultiplier |
Number | 应用颜色的百分比(0 到 1 之间的小数值)。 | |
blueMultiplier |
Number | 应用颜色的百分比(0 到 1 之间的小数值)。 | |
alphaMultiplier |
Number | 表示应用 alpha 透明通道的百分比的 0 到 1 之间的小数值。 | |
tintMultiplier |
Number | 表示应用 tintColor 值的百分比的 0 到 1 之间的小数值。 |
|
redOffset |
Number | -255 到 255 之间的数字,它先与 redMultiplier 值相乘,再与红色通道值相加。 |
|
greenOffset |
Number | -255 到 255 之间的数字,它先与 greenMultiplier 值相乘,再与绿色通道值相加。 |
|
blueOffset |
Number | -255 到 255 之间的数字,它先与 blueMultiplier 值相乘,再与蓝色通道值相加。 |
|
alphaOffset |
Number | -255 到 255 之间的数字,它先与 alphaMultiplier 值相乘,再与 Alpha 通道值相加。 |
|
tweens |
包含缓动变化的设置。 | ||
SimpleEase |
对所有缓动属性而言,在整个补间动画中为每个缓动设置定义一个单独的值。 | ||
ease |
Number | 应用于补间动画的所有属性的缓动值。缓动属性是介于 -1(100% 缓入或加速)和 1(100% 缓出或减速)之间的百分比。默认值为 0,指的是补间动画的速度固定,不加速也不减速。 | |
target |
Number | 在使用 Adobe Flash CS3 的“复制动画”和“粘贴动画”命令时,创作工具生成的 XML 不包含 SimpleEase 元素的 target 属性,因为 Flash CS3 对所有缓动属性都应用了相同的值。然而,ActionScript 3.0 类允许同时对各个属性应用不同的 SimpleEase 值。target 的可能值与 CustomEase 的值相同:“position”、“scale”、“rotation”、“color”、“filters”、“x”、“y”、“scaleX”、“scaleY”、“skewX”和“skewY”。 |
|
CustomEase |
定义一个由三次贝塞尔曲线组成的自定义缓动曲线。它可以一次应用于所有属性,或您可以为不同属性定义不同的曲线。 有关表示自定义缓动属性的曲线的详细信息,请参见 CustomEase 类。 |
||
target |
Number | 分配了自定义值的属性。在使用 Adobe Flash CS3 的“复制动画”和“粘贴动画”命令时,创作工具为 target 生成以下可能值:“position”、“scale”、“rotation”、“color”、“filters”。ActionScript 3.0 动画类允许更大的灵活性,您可以定义“x”、“y”、“scaleX”、“scaleY”、“skewX”和“skewY”的单个曲线。如果从 XML 中省略了“target”属性,则所有缓动属性定义同一目标。注意:XML 省略了自定义缓动曲线的第一个点和最后一个点。第一个点必须始终是 (0, 0)(补间属性的起始值),而最后一个点必须是 (1, 1)(补间属性的结束值)。为了保持代码有效并避免可能的错误,XML 中忽略这些值并将其假设为隐式。 |
|
filters |
定义要用作元素的 flash.filters 包中的一个对象(例如:filters:GlowFilter )。可以添加与指定的 flash.filters 对象的属性 (property) 相对应的属性 (attribute)。例如:
请参见 flash.filters 包。 |
下面的示例说明了具有内联 XML 的 ActionScript,它描述了当元件 myShape
旋转、移动、使用自定义缓动设置并在 10 个帧中更改 Alpha 值时该元件的 moveShape
MovieClip 实例的补间动画:
下面的示例说明了一个更简单的补间动画,它添加了 fl.motion.MotionEvent 类中的一个事件以在名为 abox
的元件实例的动画完成时显示一条消息:
当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/motionXSD.html