Как переместить сцену в классе в Actionscript3? - PullRequest
0 голосов
/ 18 декабря 2011

Хорошо, теперь я знаю, как переместить сцену внутри фактического файла .fla, изменив переменные this.x и this.y в ActionScript слоя 1.

Но внутри класса документа - открытый класс Starlight расширяет MovieClip, он, похоже, не работает, что бы я ни пытался, и мои исследования привели меня к этому коду использования:

for( i = 0; i < stage.numChildren; i ++){
        stage.getChildAt(i).x -= player.speedx * player.bounceSpeed;
    stage.getChildAt(i).y -= player.speedy * player.bounceSpeed;
}

Я понимаю, что он хакерский и медленнее, чем собственно перемещение самой сцены. И я не уверен, что произойдет, если другой движущийся объект выйдет на сцену, потому что технически этот код неестественно изменяет x, y всего на стадии.

Любая помощь приветствуется! Приветствия

Редактировать: пробовал это -

    var stage2:Sprite = new Sprite();
        stage2.x = stage.stageWidth / 2;
        stage2.y = stage.stageHeight / 2;
        stage2.width = 4000;
        stage2.height = 4000;
        addChild(stage2);

        for (i = 1; i < 50; i ++)
        {
            var asteroid:Asteroid = new Asteroid();
            asteroid.x = Math.round(Math.random() * stage.stageWidth * 4);
            asteroid.y = Math.round(Math.random() * stage.stageHeight * 4);
            stage2.addChild(asteroid);
            collisionList.addItem(asteroid);
            asteroids.push(asteroid);
        }

1 Ответ

1 голос
/ 18 декабря 2011

Вау, не двигай сцену!

Создай MovieClip или Sprite и вставь туда все, тогда это просто случай перемещения этого объекта.

var stage2:Sprite = new Sprite();

stage2.addChild(something);
stage2.addChild(somethingElse);

stage2.x = 10;
stage2.y = 10;
...