Как я могу получить доступ к стадии вне корневого файла? - PullRequest
0 голосов
/ 14 марта 2012

Я исправил эту ошибку до того, когда источником проблемы было то, что «stage» был недоступен, откуда я помещал код (не в root). Я удалил его, и он работал нормально, но слушатели событий, к которым они были привязаны, больше не работали. Мне нужны эти слушатели событий, но когда я пытаюсь поставить «сцену». назад перед ним не получится. помочь?

Это то, что у меня было, когда оно работало (когда этот файл все еще был корневым):

        stage.addEventListener(KeyboardEvent.KEY_DOWN, keypressed);
        stage.addEventListener(KeyboardEvent.KEY_UP, keyreleased);

Теперь мой код такой, и он работает, просто без работающих слушателей событий:

        addEventListener(KeyboardEvent.KEY_DOWN, keypressed);
        addEventListener(KeyboardEvent.KEY_UP, keyreleased);

Ответы [ 2 ]

5 голосов
/ 14 марта 2012

Свойство stage равно null, пока элемент не будет добавлен на сцену. Поэтому вы должны сначала прослушать событие Event.ADDED_TO_STAGE, и когда вы его получите, вы можете добавить других слушателей события:

addEventListener(Event.ADDED_TO_STAGE, addedToStage);

function addedTostage():void
{
    removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
    stage.addEventListener(KeyboardEvent.KEY_DOWN, keypressed);
    stage.addEventListener(KeyboardEvent.KEY_UP, keyreleased);
}
0 голосов
/ 14 марта 2012

Используйте это для доступа к сцене:

 var myMC:MovieClip = new MovieClip();
 addChild(myMC);
 var _stage:Stage = myMC.stage;
 trace("the AS3 Stage.width: "+_stage.stageWidth);
 trace("returns the width of objects on stage: "+_stage.width);
 trace("the AS3 Stage.height: "+_stage.stageHeight)
 trace("returns the height of objects on stage: "+_stage. height);

Источник: http://www.iheartactionscript.com/stage-access-outside-of-documentroot-in-as3/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...