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);
}
}
}
首先绘制的圆圈也会移动。我怎么能阻止它呢?
答案 0 :(得分:1)
您认为您正在使用public static x & y
值,但实际上您正在使用Sprite内置的x
和y
属性来控制其位置在舞台上。当您使用y++
和x++
时,它会向右/向右移动整个精灵。
您应该确保始终致电helloworld.x
&& helloworld.y
(不好主意,容易忘记)。
或强>
您不应使用名为x
和y
的变量。请尝试:circleX
和circleY
或更能描述您正在使用它的内容。