Я создаю флэш-приложение (только AS3 с FlashDevelop), и у меня возникают некоторые проблемы, связанные со слабой связью системы событий. Я много читал о центральных системах событий и статических диспетчерах событий, но они мне не совсем подходят.
То, что я строю, похоже на видеоплеер. У меня есть класс Player , который является родителем всех других маленьких частей приложения. Класс Player расширяет Sprite , и в настоящее время я разработал его так, чтобы вы могли создать несколько Player'ов и поставить их на сцену. У меня также есть класс Controller , который расширяет EventDispatcher , и я отправляю все свои события через этот класс. Это центральный класс событий.
Проблема в том, что мне нужно передать ссылку на этот класс, чтобы все остальные классы могли отправлять и прослушивать его. Передача ссылки работает, но это полная противоположность слабой связи. Я знаю, что мог бы создать статический EventDispatcher, который могли бы видеть все классы, но тогда, если бы на сцене было два или три игрока, они все услышали бы события друг друга.
Как создать тип песочницы , который позволит всем дочерним классам экземпляра Player узнавать о центральном диспетчере, не передавая ссылку или не делая ее статической?