目标是红色圆圈水平向左移动,完全脱离舞台后重新出现在右侧。
为什么在ball.graphics.drawCircle (300, 300, 50);
中设置属性X会导致球在到达舞台左侧之前消失?
如果我将x保持为0,则表现得像我想要的那样
类。
public function RedBall()
{
ball.graphics.beginFill (0xFF0000);
ball.graphics.drawCircle (300, 300, 50);
ball.graphics.endFill();
}
在我的主要
function update(e:Event):void {
a.ball.x -= 10;
if (a.ball.x < -a.ball.width) {
a.ball.x = stage.stageWidth + a.ball.width;
}
}
我认为这可能是一些非常明显的错误,因为我开始学习AS3,但如果需要,我可以发布整个代码。
答案 0 :(得分:1)
您正在以300,300的点绘制您的圆圈,但您不会在以后的代码中考虑它来检查其位置。
你可以做两件事之一。
<强>推荐:强>
在原点绘制圆,并将ball
的实例放在x为300。
<强>替代:强> 使用球的实际界限来确定其位置:
function update(e: Event): void {
ball.x -= 10;
if (ball.getBounds(stage).x < -ball.width) {
ball.x = stage.stageWidth - ball.getBounds(stage).x;
}
}