flash 创建连续运行的动画程序

作者:袖梨 2022-11-14

您可以使动画沿 x 轴来回移动永不停止。Tween 类将这种动画恰当地命名为 yoyo() 方法。yoyo() 方法将等待 onMotionFinished 事件处理函数以开始执行,随后交换 begin 和 finish 参数。动画将再次开始,如下面的过程所示。
创建无止境运动的动画:
创建一个名为 yoyo.fla 的新 Flash 文档。
打开"动作"面板并在时间轴的第 1 帧上输入以下

ActionScript:

代码如下 复制代码

import mx.transitions.Tween;
import mx.transitions.easing.*;
this.createEmptyMovieClip("box_mc", this.getNextHighestDepth());
with (box_mc) {
beginFill(0xFF0000, 60);
moveTo(0, 0);
lineTo(20, 0);
lineTo(20, Stage.height);
lineTo(0, Stage.height);
lineTo(0, 0);
endFill();
}

第一部分代码首先导入 Tween 类和 easing 包中的每个类。下一部分代码创建一个实例名称为 box_mc 的新影片剪辑,并在舞台上绘制一个宽度为 20 像素、高度与舞台相等的矩形。
在上一步中创建的代码后添加以下 ActionScript:

代码如下 复制代码

var box_tween:Tween = new Tween(box_mc, "_x", Regular.easeInOut, 0, Stage.width, 3, true);
box_tween.onMotionFinished = function() {
box_tween.yoyo();
};

此代码将创建一个新补间,以使 box_mc 影片剪辑在 3 秒钟内沿 x 轴通过舞台。
选择"控制">"测试影片"来测试动画。
矩形框从左到右来回移动。如果动画不平滑,可能需要将文档的帧速率从 12 fps 增加到 24 fps。
随着矩形框接近舞台的右侧边缘,它可能会运动到舞台的边界之外。虽然这看起来并不是多大的事,但是您可能不希望该矩形从舞台的边缘消失,然后在一秒之后再次出现,并从另一个方向移动。
若要进行调整,请将该矩形从 0 像素移到舞台宽度减去 box_mc 影片剪辑的宽度的位置。
若要阻止矩形消失,请在步骤 3 中修改对应的代码行,以与下面的代码相符:

代码如下 复制代码

var box_tween:Tween = new Tween(box_mc, "_x", Regular.easeInOut, 0, (Stage.width - box_mc._width), 3, true);

再次测试动画("控制">"测试影片")。
现在,该框在从舞台边缘消失之前将停止缓动。

相关文章

精彩推荐