舞台是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 代码,您应该将阶段的引用传递给该类的构造函数,如下所示:
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);