Actionscript круг весь рисунок движется почему? - PullRequest
0 голосов
/ 30 марта 2011
  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 Ответ

1 голос
/ 30 марта 2011

Вы думаете, вы используете ваши значения public static x & y, но на самом деле вы используете встроенные в Sprite свойства x и y, которые управляют его расположением на сцене. Когда вы используете y++ и x++, он перемещает весь спрайт вниз / вправо.

Вам следует либо убедиться, что вы всегда звоните helloworld.x && helloworld.y (плохая идея, ее легко забыть).

OR

Вы не должны использовать переменные с именами x и y. Попробуйте: circleX и circleY или что-то более описательное, для чего вы его используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...