Apache flex AIR:为什么stage==null?

Apache flex AIR:为什么stage==null?,apache-flex,air,Apache Flex,Air,我正在尝试在我的AIR应用程序上设置scaleMode。这是通过stage.scaleMode设置的。然而,当我尝试引用stage时,它返回为null。我不知道为什么 以下是整个应用程序: <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> <mx:

我正在尝试在我的AIR应用程序上设置scaleMode。这是通过stage.scaleMode设置的。然而,当我尝试引用stage时,它返回为null。我不知道为什么

以下是整个应用程序:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
    <mx:Script>
        <![CDATA[
            import flash.display.StageDisplayState;
            private function init():void
            {
                var s:Stage = this.stage; //<<-- this.stage == null...why??
                s.scaleMode = StageScaleMode.EXACT_FIT;
            }
        ]]>
    </mx:Script>
</mx:WindowedApplication>


尝试为
事件添加事件侦听器。将\u添加到\u STAGE
addedStatage
mxml属性。您应该能够引用该阶段。

尝试
windowComplete
而不是
creationComplete
。此外:

[如果]您正在尝试添加 eventListeners从右键进入舞台 应用程序的开始 执行时,这只适用于 updateComplete()和 applicationComplete()


来源:

为了安全起见,在Web和AIR应用程序中,我通常使用
applicationComplete
事件来标记启动周期的完成,然后再查找
stage
对象。从文档中:

在创建所有组件并 绘制的应用程序对象 分派应用程序完成 事件这是最后一个事件 在应用程序中调度 启动

如果您等待应用程序完成,您可以确保一切都准备好了。

见鬼

你可以试试看

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication 
       xmlns:mx="http://www.adobe.com/2006/mxml" 
       creationComplete="init()">
    <mx:Script>
        <![CDATA[
            import flash.display.StageDisplayState;
            private function init():void
            {
                this.systemManager.stage.scaleMode = StageScaleMode.EXACT_FIT;
            }
        ]]>
    </mx:Script>
</mx:WindowedApplication>


这应该可以做到:)

我想你是说applicationComplete而不是windowComplete?