Доступ к слушателю событий основного класса - PullRequest
0 голосов
/ 13 апреля 2010

Я хотел удалить прослушиватель событий со сцены основного класса, но я получил ошибку 1120: Access of undefined property stage. Как я могу получить доступ к сцене?

пользовательский класс:

import main;
main.disableVcam();

основной класс:

public static function disableVcam():void {
            trace("disable");
            stage.removeEventListener(MouseEvent.MOUSE_MOVE, movevC);
        }

1 Ответ

0 голосов
/ 13 апреля 2010

Если объект не находится на стадии отображения, объект stage будет неопределенным (или нулевым). Вы должны addChild объект, чтобы объект stage имел значение.

Редактировать: Возможно, вы можете справиться с этим в обработчике событий?

protected function clickHandler(e :Event) :void {
    if (e.target.stage) {
        e.target.stage.removeEventListener(...);
    }
}

Edit2: у статических методов нет этапа, поэтому для решения вашей проблемы вы можете сделать свой основной класс синглтоном и работать так:

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-класс является основным классом проекта, вам необходимо присвоить значение статической переменной instance в конструкторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...