【发布时间】:2011-04-06 14:40:21
【问题描述】:
我有一个名为 MovingObject 的类,它扩展了 MovieClip 类。这个类将被实例化多次。在这个类里面是一个处理物体移动速度的定时器。还有另一个名为 TheStage 的类,这是我将实例化 MovingObject (s) 的地方。
公共类 MovingObject 扩展 MovieClip{
公共 var tmr:Timer = new Timer(1);
公共功能移动对象(){
tmr.addEventListener(TimerEvent.TIMER, 移动);
}
公共函数 StartMove():void{
this.tmr.start();
}
公共函数ChangeSpeed(延迟:数字):无效{
this.tmr.delay = 延迟;
}
公共函数移动(evt:TimerEvent):无效{
// 一些代码使 this.x 和 this.y 改变
}
}
公共类 TheStage 扩展了 MovieClip{
公共 var objectArray:Array = [];
公共函数 TheStage(){
变量 x:int =0;
var mcMoveObject;
而(x!= 10){
mcMoveObject = new MovingObject();
mcMoveObject.x += 10;//对象之间的偏移量
mcMoveObject.y += 10;//对象之间的偏移量
this.addChild(mcMoveObject);
objectArray.push(mcMoveObject);
mcMoveObject.tmr.start();
x++;
}
}
public function ChangeSpeed(delay:Number):void{//一些改变速度的函数
for(var chilCnt:int =0;chilCnt
假设代码工作正常(我还没有调试过),这会使粒子同时移动。然而,经过几秒钟的运行,粒子似乎并没有彼此同步移动(因为它们之间的距离似乎越来越近了)。我需要一些帮助才能使物体移动时彼此之间的距离相等。
【问题讨论】:
-
尝试将您的代码包装在
标记中或将其缩进四个空格。它会更容易阅读!
-
使用计时器有什么好处?为什么不使用 enterFrame 事件?
标签: flash actionscript-3