您可以使用 fl.motion 包中的 XML 类和 ActionScript 类来描述补间动画。Adobe Flash CS4 提供了一个“将动作复制为 ActionScript”命令,基于时间轴上的补间动画生成 XML 和 ActionScript,以便在其它元件或其它项目中使用。您还可以编写自己的补间动画脚本。只要在编译时类路径中有 fl.motion 类,补间动画就会应用到指定的显示对象。有关动画类的详细信息,请参阅 fl.motion 包。支持 XML 的元素对应于《ActionScript 3.0 语言参考》中的类和属性。
XML 元素层次结构如下所示:
下表简要总结了可以为动画对象分配的 XML 元素和属性。有关每个条目的详细信息,请参阅与各个元素对应的类中列出的属性:
| 元素 | 属性 | 类型 | 说明 |
|---|---|---|---|
| Motion | 定义 Motion 实例,使 Flash 能够分配用于勾画补间动画特征的属性。请参阅 fl.motion.Motion 类。 | ||
| duration | Number | 所选补间动画的帧数。请参阅 fl.motion.MotionBase.duration 属性。 | |
| source | Source 元素所需的父标签。此标签没有属性,但编译器需要使用它来处理 Source 元素及其属性。 | ||
| Source | 包含与动画相关的原始可视对象的属性。请参阅 fl.motion.Source 类。 | ||
| frameRate | Number | 为包含从 Flash CS4 复制的原始动画的 SWF 文件设置的每秒帧数 (fps)。该值对其它 SWF 文件的 ActionScript 实现没有任何影响。请参阅 fl.motion.Source.frameRate 属性。 | |
| x | Number | 位于从 Flash CS4 复制的原始补间动画的开始位置处的元件实例变形点的 x 坐标。 | |
| y | Number | 位于从 Flash CS4 复制的原始补间动画的开始位置处的元件实例变形点的 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 CS4 文档库中的元件名称(如果该元件存在 - 因为原始可视对象可能不是元件实例)。 | |
| dimensions | 包含一些标签,这些标签使用 geom 命名空间描述补间元件的边框和变形点。 |
||
| geom:Rectangle | flash.geom 包中的对象。 | 可以添加与 flash.geom.Rectangle 对象的属性相对应的属性。例如:
|
|
| 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 CS4 的“复制动画”和“粘贴动画”命令使用。如果在 XML 中省略,则默认值为 true。 |
|
| tweenSnap | Boolean | 将“捕捉”设置切换为打开("true")或关闭("false")。“捕捉”会根据元件的注册点将元件附加到运动路径。因为 ActionScript 无法控制图形元件,所以此属性对 ActionScript 动画没有影响。XML 属性仅供 Adobe Flash CS4 的“复制动画”和“粘贴动画”命令使用。如果在 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 | Number | 指定在开始关键帧与下一关键帧之间,除正常旋转外,补间元素的旋转次数。Adobe Flash CS4 要求此值为大于或等于 0 的整数,但动画类允许使用小数值。 | |
| 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 | 包含颜色变体的设置。Flash 元件实例有五种颜色模式:none、alpha、tint、brightness 和 advanced。对于不转换( 对于 对于 对于 对于 |
||
| brightness | Number | 应用亮度通道的百分比,介于 -1 和 1 之间,其中 -1 为全黑而 1 为全白。 | |
| tintColor | Hexidecimal | 代表要应用的颜色的十六进制颜色值。 | |
| alphaMultiplier | Number | 应用 Alpha 通道的百分比(0 到 1 之间的小数值)。 | |
| redMultiplier | Number | 应用颜色的百分比(0 到 1 之间的小数值)。 | |
| greenMultiplier | Number | 应用颜色的百分比(0 到 1 之间的小数值)。 | |
| blueMultiplier | Number | 应用颜色的百分比(0 到 1 之间的小数值)。 | |
| alphaMultiplier | Number | 介于 0 到 1 之间的小数值,表示应用 Alpha 透明通道的百分比。 | |
| tintMultiplier | Number | 介于 0 和 1 之间的小数值,表示应用 tintColor 值的百分比。 |
|
| 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 CS4 的“复制动画”和“粘贴动画”命令时,由创作工具生成的 XML 不包含 SimpleEase 元素的 target 属性,这是因为 Flash CS4 对所有缓动属性都应用相同的值。然而,ActionScript 3.0 类允许同时对各个属性应用不同的 SimpleEase 值。target 的可能值与 CustomEase 的值相同:“position”、“scale”、“rotation”、“color”、“filters”、“x”、“y”、“scaleX”、“scaleY”、“skewX”和“skewY”。 |
|
| CustomEase | 定义一个由三次贝塞尔曲线组成的自定义缓动曲线。您可以将它同时应用于所有属性,也可以为不同的属性定义不同的曲线。 有关表示自定义缓动属性的曲线的详细信息,请参阅 CustomEase 类。 |
||
| target | Number | 分配了自定义值的属性。使用 Adobe Flash CS4 的“复制动画”和“粘贴动画”命令时,创作工具为 target 生成以下可能值:“position”、“scale”、“rotation”、“color”和“filters”。ActionScript 3.0 动画类提供更大的灵活性,您可以为以下变量定义各自的曲线:“x”、“y”、“scaleX”、“scaleY”、“skewX”和“skewY”。如果在 XML 中省略“target”属性,则所有缓动属性都定位到同一目标。注意:XML 省略了自定义缓动曲线的第一个点和最后一个点。第一个点必须始终是 (0, 0)(补间属性的起始值),最后一个点必须是 (1, 1)(补间属性的结束值)。为保持代码有效并避免可能的错误,这些值将在 XML 中会忽略并假定为隐性值。 |
|
| BezierControl | 与用来定义曲线的曲线相关联的一个点。 | ||
| x | Number | 定义曲线所用的点的 x 坐标。 | |
| y | Number | 定义曲线所用的点的 y 坐标。 | |
| BezierNode | 一个点,位于定义曲线时所用的某条曲线上。 | ||
| x | Number | 曲线上的点的 x 坐标。 | |
| y | Number | 曲线上的点的 y 坐标。 | |
| filters | 定义 flash.filters 包中的一个对象作为元素(例如:filters:GlowFilter)。您可以添加与指定的 flash.filters 对象的属性相对应的属性。例如:
请参阅 flash.filters 包。 |
下面的示例说明了具有内联 XML 的 ActionScript,它描述了当元件 myShape 旋转、移动、使用自定义缓动设置并在 10 个帧中更改 Alpha 值时,该元件的 moveShape 影片剪辑实例的补间动画: