Flash AS3 - Отправка событий от родительского класса к дочернему классу

Я думаю, что это довольно простая проблема, но, похоже, я не могу ее решить. В основном у меня есть родительский класс A и дочерний класс B. Класс A создает экземпляр класса B с помощью addChild. Существует общий объект, который обновляется с java-сервера (red5), к которому прикреплен прослушиватель событий в классе A. У меня есть функция в классе A, которая будет передавать определенные, конкретные обновления из этого общего объекта в класс B. Проблема заключается в том, что при создании экземпляра класса B прослушиватель событий из класса A больше не работает. Я не удалил прослушиватель событий из A. Есть мысли?


person John Russell    schedule 30.04.2010    source источник
comment
Вы имеете в виду, что если вы не добавите addChild (b), то прослушиватель событий будет работать? Или вы имеете в виду, что если вы не выполняете var b: B = new B (), то прослушиватель событий работает?   -  person bitc    schedule 01.05.2010
comment
Как только я добавляю addChild (B) (он все еще работает, когда я использую var b: B = new B ()), прослушиватель событий в A перестает работать. В основном создаю вестибюль (класс а) и комнаты (класс б). Я хочу, чтобы комнаты использовали определенные данные из вестибюля. Однако, когда я добавляю ребенка (someRoom), прослушиватель событий из вестибюля больше не вызывает функцию, которая обновляет комнаты (даже если общий объект определенно меняется).   -  person John Russell    schedule 01.05.2010
comment
Я исправляюсь, как только я делаю var b: B = new B (), прослушиватель событий в A перестает работать.   -  person John Russell    schedule 01.05.2010
comment
Они не могут быть связаны. Что-то еще вмешивается в события А. Простое создание объекта не приведет к волшебному удалению прослушивателя событий.   -  person mrkishi    schedule 01.05.2010


Ответы (1)


Получается, что ваш класс B вмешивается в общий объект или, возможно, в соединение с сервером Java? Простое создание экземпляра класса, конечно, не должно мешать чему-либо, к чему у него нет доступа.

Вам нужно внимательнее посмотреть, какие зависимости есть у B. Достигает ли он глобального состояния? (Это плохо с точки зрения оппонента). Выполняет ли он какую-либо работу внутри своего конструктора, из-за которой обновление перестает работать? Наследует ли он какой-то другой класс, который выполняет что-либо из вышеперечисленного? Разберитесь в этом, и вы, вероятно, найдете виновного.

person bitc    schedule 30.04.2010