我想从主类阶段删除一个事件监听器,但是我收到错误1120: Access of undefined property stage.
我如何实际访问该阶段?
自定义类:
import main;
main.disableVcam();
主要课程:
public static function disableVcam():void {
trace("disable");
stage.removeEventListener(MouseEvent.MOUSE_MOVE, movevC);
}
答案 0 :(得分:0)
除非对象在显示阶段,否则stage
对象将是未定义的(或null)。您必须addChild
stage
对象的对象才能拥有值。
编辑:也许你可以在事件处理程序中处理它?</ p>
protected function clickHandler(e :Event) :void {
if (e.target.stage) {
e.target.stage.removeEventListener(...);
}
}
Edit2:静态方法没有阶段,所以为了解决你的问题,你可以让你的Main-class成为单例,并且像这样工作:
public class Main {
static private var instance :Main;
static public function getInstance() :Main {
if (Main.instance == undefined) {
Main.instance = new Main();
}
return Main.instance;
}
// The rest of the class goes here
}
// snip
import Main;
public static function disableVcam():void {
trace("disable");
Main.getInstance().stage.removeEventListener(MouseEvent.MOUSE_MOVE, movevC);
}
如果您的Main-class是项目的主类,则需要在构造函数中指定静态instance
变量的值。