我正在尝试将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.
有什么建议吗?谢谢!
答案 0 :(得分:3)
舞台是DisplayObject
的属性。当DisplayObject
不在Stage
时,其舞台属性为undefined
。
因此,您需要确保在运行QuickKong.connectToKong(stage);
时可以使用舞台。
如果你在文档类的构造函数中执行此操作,它应该可以正常工作。您可能会在其他没有舞台属性的课程中尝试这样做。
如果您在尝试运行此课程的课程扩展了DisplayObject
,例如MovieClip
或Sprite
,您可以听取它何时添加到舞台然后运行您的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
代码,你应该将对舞台的引用传递给该类的构造函数,如下所示: / p>
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);