既然您说您已准备好使用 AS3,这里就是解决方案。
我假设您有一个单独的电影剪辑,其中包含您放置在主时间线/舞台上的蜘蛛动画。
1.将您的MovieClip 放在舞台上,并为其命名为“蜘蛛”。
2.在这个MovieClip里面,在第一帧放这段代码(它会处理动画的反转)
import flash.events.Event;
stop();
var _dir:int = 1;
addEventListener(Event.ENTER_FRAME, onEF);
function onEF(e:Event):void
{
getNextAnimationFrame();
}
function getNextAnimationFrame():void
{
var frameNum:int = currentFrame + _dir;
if (frameNum < 1 || frameNum > totalFrames)
{
removeEventListener(Event.ENTER_FRAME, onEF);
}
frameNum = Math.max(1, Math.min(totalFrames,frameNum));
gotoAndStop(frameNum);
}
function changeDirection($dir:int):void
{
_dir = $dir;
removeEventListener(Event.ENTER_FRAME, onEF);
addEventListener(Event.ENTER_FRAME, onEF);
}
3.在主时间线上(在第一帧)放上这段代码:
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
var timer:Timer = new Timer(60 * 1000, 1);
timer.start();
timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTime);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
function onTime(e:TimerEvent):void
{
trace("it's time");
spiders.changeDirection(1);
}
function onMove(e:MouseEvent):void
{
timer.reset();
timer.start();
spiders.changeDirection(-1);
}
可以在一段代码中处理鼠标、计时器和动画,但是它现在的构建方式是一种OOP,如果在某个时候你决定正确构建它,那么将代码“重写”为单独的类。