RAO
RAO

Reputation: 71

Why isn't it going off stage?

The objective is for the red circle move horizontally to the left and when completely off stage to reappear on the right side.

Why is it that setting the property X in ball.graphics.drawCircle (300, 300, 50); causes the ball to disappear before it reaches the stage left side?

If I leave x being 0 it behaves as I want

Class.

public function RedBall() 
{
ball.graphics.beginFill (0xFF0000);
ball.graphics.drawCircle (300, 300, 50);
ball.graphics.endFill();
}

In my main

function update(e:Event):void {
a.ball.x -= 10;
if (a.ball.x < -a.ball.width) {
a.ball.x = stage.stageWidth + a.ball.width; 
}
}

I think this probably must be some very obvious errors as I'm beginning to learn AS3 but if needed I can post the whole code.

Upvotes: 0

Views: 31

Answers (1)

Marcela
Marcela

Reputation: 3728

You are drawing your circle at a point of 300,300, but you are not later accounting for that in your code where you check its position.

You can do one of two things.

Recommended: Draw the circle at the point of origin, and place the instance of ball at an x of 300.

Alternative: Use the ball's actual bounds to determine its position:

function update(e: Event): void {
    ball.x -= 10;
    if (ball.getBounds(stage).x < -ball.width) {
        ball.x = stage.stageWidth - ball.getBounds(stage).x;
    }
}

Upvotes: 1

Related Questions