它为什么不下台?

时间:2014-04-04 19:05:59

标签: actionscript-3 flashdevelop stage

目标是红色圆圈水平向左移动,完全脱离舞台后重新出现在右侧。

为什么在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,但如果需要,我可以发布整个代码。

1 个答案:

答案 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;
    }
}