我怎样才能访问根文件之外的阶段?

时间:2012-03-14 09:36:23

标签: actionscript-3

我修复了这个错误,之前问题的根源是'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 个答案:

答案 0 :(得分:5)

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);
}

答案 1 :(得分:-1)

使用它来访问舞台:

 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/