Я создаю простую игру, чтобы изучить Flash-программирование. Чтобы иметь чистое разделение модели/представления, я хочу создать класс Player, который просто хранит данные, относящиеся к пользователю. Я также создаю класс StatusView, который расширяет MovieClip и который соответствует символу клипа, который я создал в своем проекте Flash. В основном StatusView будет отображать данные моего класса Player на экране.Модель-дизайн в Flash
Я привык делать подобные вещи с помощью слушателей, поэтому я нашел класс EventDispatcher и добавил его в качестве члена моего класса Player. Я хотел бы, чтобы мой клип StatusView добавлял прослушиватель событий в мой класс Player, чтобы он мог получать сообщения всякий раз, когда я меняю данные в классе Player.
Проблема заключается в том, что мне не кажется, что я должен помещать свой класс Player, чтобы StatusView мог его найти (чтобы добавить слушателя). Все в проекте создается непосредственно одним из фрагментов ролика, а время выполнения создает эти клипы в произвольном порядке. Например, скажем, я создаю символ MovieClip под названием GameView, и я создаю экземпляр Player там, а GameView является родителем StatusView. Когда StatusView сконструирован, я хотел бы иметь доступ к Игроку из его родителя, но в тот момент GameView еще не выполнил его код конструктора. Это верно, даже если я жду событие ADDED_TO_STAGE.
Я могу поставить код модели игры в одноэлементный, но это кажется взломом для меня. Есть ли способ передовой практики во Flash, который позволяет мне создавать и получать доступ к моей игровой модели независимо от всего материала символа MovieClip?
Согласен. Попросите игрока расширить EventDispatcher. –