Эта проблема называется «отложенной реализацией» и является продуктом жизненного цикла компонентов Flex. Если вы хотите получить чрезвычайно подробное объяснение этой концепции, этот документ , вероятно, является лучшим из того, что я читал.
По сути Flex создает компоненты по мере необходимости. Каждый компонент имеет жизненный цикл, который проходит через этапы:
- Строительство
- Сложение
- 1012 * инициализация *
- Недействительно
- Проверка
- Обновление
- Удаление
Подкомпонент не будет доступен, пока он не пройдет фазу инициализации. В этот момент Flex-компонент отправляет событие CREATION_COMPLETE, давая вам (и структуре) понять, что он готов к взаимодействию. До этого события вы будете получать null опорных ошибок при попытке доступа к компоненту или его дочерним элементам.
ViewStacks составляют это по умолчанию, не инициализируя подкомпоненты, пока они не будут вызваны для отображения. Свойство creationPolicy ViewStack по умолчанию установлено на auto . Есть несколько вариантов для этого свойства, включая все . Однако имейте в виду, что это может привести к серьезным проблемам с производительностью, поскольку все компоненты в стеке будут немедленно инициализированы независимо от того, действительно ли пользователь даже смотрит на компонент.
В вашем конкретном случае это не проблема. Компонент, содержащий стек представлений, не был полностью инициализирован. Вам необходимо установить дочерний элемент ViewStack в обработчике событий CREATION_COMPLETE.