Будут ли какие-либо неудобства, если два объекта разных классов добавят на сцену двух слушателей с одинаковыми именами? - PullRequest
0 голосов
/ 24 сентября 2011

Для примера, как это:

package {
    class A {
        public A() {
            stage.addEventListener(MouseEvent.MOUSE_UP, jump);
}}}

и

package {
    class B {
        public B() {
            stage.addEventListener(MouseEvent.MOUSE_UP, jump);
}}}

Я не имею в виду точный код, этот может не сработать, просто чтобы очистить мой вопрос.

Ответы [ 2 ]

2 голосов
/ 24 сентября 2011

Вам нужны такие методы для обоих классов.

package {
class A {
  public function jump(){
    trace("this is jump on A");
  }
  public A() {
    stage.addEventListener(MouseEvent.MOUSE_UP, jump);
  }
}
package {
  class B {
    public function jump(){
      trace("this is jump on B");
    }
    public B() {
        stage.addEventListener(MouseEvent.MOUSE_UP, jump);
    }
  }
}

Оба метода перехода будут вызваны, когда stage отправит событие mouseUp. если вы используете что-то вроде stage.addEventListener (MouseEvent.MOUSE_UP, stage.jump) ;. Этот метод прыжка будет вызываться два раза.

Надеюсь, это поможет.

2 голосов
/ 24 сентября 2011

Нет, потому что каждый метод перехода будет локальным для экземпляра класса, который его добавил.Убедитесь, что вы включили код для удаления прослушивателя событий, когда экземпляр уничтожен, или вы получите утечку памяти, так как stage всегда существует.

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