如果要在初始动画完成后移动球, 会怎样? 至少有两种方法可处理这个问题。 第一种方法 (也许是最明显的解决方案) 就是使用 motionFinished 事件重新实现球的动画。 虽然这种方法可行, 但变形类还提供了更简单的解决方案: continueTo() 方法。 continueTo() 方法指示变形后的动画从当前值继续运动到新值。 您会发现这一方法在以下 ActionScript 中发挥作用:
import fl.transitions.*;
import fl.transitions.easing.*;
var ball_tween:Object = new Tween(ball_mc, "x", Regular.easeIn, 0, 300, 3, true);
function handleFinish(event:TweenEvent):void {
ball_tween.continueTo(0, 3);
};
ball_tween.addEventListener(TweenEvent.MOTION_FINISH, handleFinish);
当初始变形完成后, ball_mc 影片剪辑将变回 0 像素处的原始位置。
只有 2 个变量传递到 continueTo() 方法, 而 Tween 方法需要传递 7 个变量。 continueTo() 方法中省略的 5 个变量 (obj、prop、func、begin 和 useSeconds) 使用在先前调用变形类时定义的变量。 调用 continueTo() 时, 假设 obj、prop、func (缓动类型) 和 useSeconds 变量与先前调用变形类时相同。 continueTo() 方法使用调用变形类时的 finish 值, 而不是为 begin 变量指定值。
您甚至可以使动画沿 X 轴不停地来回运动。 变形类还通过适当命名的 yoyo() 方法实现这种动画。 yoyo() 方法等待 motionFinished 事件执行, 然后将 begin 和 finish 参数对换。 动画重新开始, 如下例所示。
选择“矩形工具”, 然后在“工具”面板中将笔触颜色选择为“无颜色”, 将填充颜色选择为红色。 在舞台上画一个矩形, 宽度为 20 像素, 高度为整个舞台的高度 (请参见图 3)。

图 3。在舞台上画一个与舞台同高、宽约 20 像素的红色矩形
当选定笔触颜色时画一个矩形, 然后使用“选项”工具选择笔触。 将矩形宽度更改为舞台宽度 (默认情况下为 550 像素), 将其高度更改为舞台高度 (默认情况下为 400 像素)。 然后将笔触的 X 和 Y 坐标设置为 0 像素, 使笔触描画舞台尺寸的轮廓 (请参见图 4)。

图 4。创建无填充的矩形, 设置其尺寸使其描画舞台轮廓
import fl.transitions.*;
import fl.transitions.easing.*;
var box_tween:Tween = new Tween(box_mc, "x", Regular.easeInOut, 0, stage.stageWidth, 3, true);
function handleFinish(event:TweenEvent):void {
box_tween.yoyo();
}
box_tween.addEventListener(TweenEvent.MOTION_FINISH, handleFinish);
box_mc 影片剪辑宽度处。 将步骤 8 中的代码进行以下修改后, 您将发现如何实现这一变化: import fl.transitions.*;
import fl.transitions.easing.*;
var box_tween:Tween = new Tween(box_mc, "x", Regular.easeInOut, 0, stage.stageWidth - box_mc.width, 3, true);
function handleFinish(event:TweenEvent):void {
box_tween.yoyo();
}
box_tween.addEventListener(TweenEvent.MOTION_FINISH, handleFinish);
现在测试动画并注意框在退出舞台边界之前如何停止缓动。