AS3: центрировать анимацию, загруженную друг на друга - PullRequest
0 голосов
/ 13 августа 2010

У меня вопрос к центру анимации внутри его контейнера.

Это контейнер или загрузчик:

    public function Main():void
    {
        trace("Constructor...");

        this.addEventListener(Event.ADDED_TO_STAGE, this.addEvent);
    }

    public function addEvent(e:Event):void
    {
        trace("AddedToStage");

        this.stage.scaleMode = StageScaleMode.NO_SCALE;
        this.stage.align = StageAlign.TOP_LEFT;

        var url = new URLRequest("testfile.swf");
        movie = new Loader();
        movie.contentLoaderInfo.addEventListener(Event.COMPLETE, this.eventComplete);
        this.stage.addChild(movie);
        movie.load(url);
    }

    public function eventComplete(e:Event):void
    {
        trace("Complete...");

        movie.x = (this.stage.stageWidth - movie.width) * 0.5;
        movie.y = (this.stage.stageHeight - movie.height) * 0.5;
    }

Это прекрасно работает с объектами, которые находятся на сцене, ноне с объектами, которые добавляются с помощью ActionScript ... как это:

    public function Main():void
    {
        trace("Constructor of included file!");

        stage.scaleMode = StageScaleMode.NO_SCALE;

        var movieclip = new symbol_an();
        stage.addChild(movieclip);
    }

У вас есть решение?

Спасибо, с уважением.

1 Ответ

0 голосов
/ 13 августа 2010

Что вы подразумеваете под тем, что она не работает, ваша вторая функция не показывает много ... Во второй части вашего кода вы можете сделать то же самое, что и в первой, в основном получить ширину контейнера и егоребенок, вычесть потом разделить результат на два.Чтобы это работало, вы должны убедиться, что свойства width или height действительно имеют значение, это зависит от вашего конкретного приложения, поэтому вам сложно помочь без дополнительной информации.

Во второй части выне имеет прослушивателя события ADDED_TO_STAGE, это может привести к ошибке, поскольку значение stage может быть нулевым.

...