actionscript圈整个绘图移动为什么?

时间:2011-03-30 16:37:52

标签: actionscript

  package {

  import flash.display.Sprite;
  import flash.events.Event;
  import flash.events.KeyboardEvent;
  import flash.ui.Keyboard;

    public class helloworld extends Sprite {

    public static var x:int = 0;
    public static var y:int = 0;

    public function helloworld() {

      graphics.lineStyle(1, 0, 1);
           stage.focus = this;
           stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);   
    }   

      private function onKeyDown(event:KeyboardEvent):void {

   if (event.keyCode == Keyboard.DOWN)
    {
      y++;
      graphics.moveTo(x,y);
          graphics.drawCircle(x, y, 10);
    }

  if (event.keyCode == Keyboard.RIGHT)
    {
      x++;
      graphics.moveTo(x,y);
          graphics.drawCircle(x, y, 10);
    } 

  }
}

首先绘制的圆圈也会移动。我怎么能阻止它呢?

1 个答案:

答案 0 :(得分:1)

认为您正在使用public static x & y值,但实际上您正在使用Sprite内置的xy属性来控制其位置在舞台上。当您使用y++x++时,它会向右/向右移动整个精灵。

您应该确保始终致电helloworld.x&& helloworld.y(不好主意,容易忘记)。

您不应使用名为xy的变量。请尝试:circleXcircleY或更能描述您正在使用它的内容。