以下是一个示例代码,实现了使用AS3随机生成符号,并在舞台上移动并添加缓动效果的循环。
import flash.display.MovieClip;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var symbols:Array = []; // 存储生成的符号对象
var symbolNum:int = 5; // 符号数量
var stageWidth:int = stage.stageWidth; // 舞台宽度
var stageHeight:int = stage.stageHeight; // 舞台高度
// 创建符号对象
for (var i:int = 0; i < symbolNum; i++) {
var symbol:MovieClip = new Symbol(); // Symbol为你的符号库中的影片剪辑
symbol.x = Math.random() * stageWidth; // 随机生成x坐标
symbol.y = Math.random() * stageHeight; // 随机生成y坐标
stage.addChild(symbol);
symbols.push(symbol);
}
// 监听每帧事件,移动符号
stage.addEventListener(Event.ENTER_FRAME, moveSymbols);
function moveSymbols(event:Event):void {
for (var i:int = 0; i < symbolNum; i++) {
var symbol:MovieClip = symbols[i];
var targetX:Number = Math.random() * stageWidth; // 生成新的目标x坐标
var targetY:Number = Math.random() * stageHeight; // 生成新的目标y坐标
var tween:Tween = new Tween(symbol, "x", Regular.easeInOut, symbol.x, targetX, 3, true); // 水平方向缓动
var tween2:Tween = new Tween(symbol, "y", Regular.easeInOut, symbol.y, targetY, 3, true); // 垂直方向缓动
tween.addEventListener(TweenEvent.MOTION_FINISH, onTweenFinish);
tween2.addEventListener(TweenEvent.MOTION_FINISH, onTweenFinish);
}
}
function onTweenFinish(event:TweenEvent):void {
var tween:Tween = event.currentTarget as Tween;
tween.removeEventListener(TweenEvent.MOTION_FINISH, onTweenFinish);
tween.stop();
tween = null;
}
在代码中,我们首先创建了一个存储符号对象的数组 symbols
,然后使用 for
循环生成指定数量的符号对象,并设置其初始位置为随机生成的 x 和 y 坐标。
接下来,我们在舞台上监听 Event.ENTER_FRAME
事件,每一帧执行 moveSymbols
函数。在 moveSymbols
函数中,我们通过遍历符号数组,为每个符号生成新的目标 x 和 y 坐标,并使用 Tween
类来实现缓动效果移动符号。移动完成后,我们监听 TweenEvent.MOTION_FINISH
事件,并在事件处理函数中将 Tween
对象从内存中移除。
这样,符号对象就会随机移动,并且带有缓动效果。