У меня была точная проблема в паре разных проектов.Ради скорости я решил эту проблему, быстро пройдя по всем дочерним элементам, точно так же, как и вы, после завершения создания, и это выглядело так же «грязно» и «хакерски», но оно выполнило свою работу.
ActionScript isnОн не настолько зрелый, как другие языки, поэтому многие решения требуют быстрого взлома, потому что для его правильной работы потребуется написание целого фреймворка, что непрактично.
Я также решил проблему с помощью объекта Application.application.Это крутой маленький трюк, чтобы получить глобальную ссылку на вещи.Я использую это, когда мне нужны единичные экземпляры в моем приложении.Опять же, хакерский, но элегантно простой.
Применяя это к вашей ситуации, вместо того, чтобы запускать событие, которое должно всплыть во всем вашем коде, вы можете делать что-то вроде следующего:создан (и ваше пользовательское событие раньше было запущено):
Application.application.StatisticList.addItem(this);
Еще один крутой трюк, который я использую в подобных ситуациях, это словари вместо ArrayCollections.Они дают мне возможность выполнять «мгновенный поиск», когда мне это нужно, и в то же время разрешать итерации, когда это необходимо.Вы можете перебирать как ключи, так и значения словаря.Код становится примерно таким:
Application.application.StatisticList[this.id] = this;
Теперь вы можете получить доступ к своей статистике тремя способами:
- Мгновенно по прямому идентификатору
- В «порядке», итерациипо всем идентификаторам
- В «порядке», итерируясь по всем объектам StatisticBox (та же функциональность ArrayCollection)
Надеюсь, кое-что из этого поможет каким-то образом,
- gMale