【问题标题】:Moving objects with Timer用定时器移动物体
【发布时间】: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


【解决方案1】:

这是关于粒子的一个很好的资源:

http://sebleedelisle.com/2007/09/as3-particles-1000-extra-free/

我建议查看提供的代码。

【讨论】:

    【解决方案2】:

    使用原样的代码,您只会在舞台上看到一个粒子,以下代码不会偏移您的对象!

    mcMoveObject = new MovingObject(); mcMoveObject.x += 10;//对象之间的偏移量 mcMoveObject.y += 10; //因为你正在实例化一个新的 MovingObject +=10 并没有达到你的预期 // 它只是简单地将 x & y 的值设置为 10。

    你需要这样做

    变量 objX:int; 变量 objY:int; 而( x!=10 ) { objX +=10; objY +=10; mcMoveObject = new MovingObject(); mcMoveObject.x += objX; mcMoveObject.y += objY; //等等....

    那么,为什么要这样称呼呢?

    mcMoveObject.tmr.start();

    什么时候可以这样做

    mcMoveObject.StartMove();
    

    你真的试过这个代码吗?我不明白为什么你的 MovingObjects 会不同步,现在它们应该一起移动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-10
      • 2022-06-10
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 2019-04-04
      • 2011-11-12
      • 1970-01-01
      相关资源
      最近更新 更多