【问题标题】:AS3 - error 1120: Access of undefined property stageAS3 - 错误 1120:未定义属性阶段的访问
【发布时间】:2015-01-13 13:30:38
【问题描述】:

我正在尝试将 QuickKong 类添加到我正在制作的游戏中,如下所述:http://www.kongregate.com/forums/90-kongregate-apis/topics/199155-quickkong-easy-kong-api-integration

要调用该类,请使用:

QuickKong.connectToKong(stage);

但是,它一直在给我:

error 1120: Access of undefined property stage.

有什么建议吗?谢谢!

【问题讨论】:

    标签: actionscript-3 stage


    【解决方案1】:

    舞台是DisplayObject 的属性。当DisplayObject 不在Stage 上时,其舞台属性为undefined

    因此,您需要确保在运行 QuickKong.connectToKong(stage); 时该阶段可用。

    如果您在文档类的构造函数中执行此操作,它应该可以正常工作。您可能正在尝试在其他没有舞台属性的类中执行此操作。

    如果您尝试在其中运行它的类扩展了DisplayObject,例如MovieClipSprite,您可以在将其添加到舞台时进行监听,然后运行您的QuickKong 代码。像这样:

    package  {
    
    import flash.display.MovieClip;
    import flash.events.Event;
    
    public class Test extends MovieClip {
    
    
        public function Test() {
            addEventListener(Event.ADDED_TO_STAGE, onAdded);
        }
    
        private function onAdded(e:Event):void{
            // now the stage is available
            QuickKong.connectToKong(stage);
        }
    }
    

    }

    现在,如果由于某种原因您没有在有权访问阶段的类中运行 QuickKong 代码,您应该将阶段的引用传递给该类的构造函数,如下所示:

    var someClass:SomeClass = new SomeClass(stage);
    

    最后,在您的文档类中,您可以使静态变量引用舞台。像这样:

    package  {
    
    import flash.display.MovieClip;
    
    public class Main extends MovieClip {
    
    
        public function Main() {
            Main.stage = stage;
        }
    
    }
    

    }

    现在,当您需要谈论阶段时,您可以在代码中的任何位置说:Main.stage

    QuickKong.connectToKong(Main.stage);
    

    【讨论】:

    • 太好了,很高兴有帮助
    猜你喜欢
    • 2014-06-29
    • 2015-07-12
    • 2012-06-05
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2011-01-07
    相关资源
    最近更新 更多