Я не уверен, в чем именно причина вашей проблемы, но вот пара мыслей, которые должны помочь.
Вам нужно начать конструктор с оператора super ().
public function AccordionWindow(list:Array)
{
super();
<pre><code> // any other code you might have in your constructor.
// generally, you'll want to store arguments in instance properties.
// maybe something like this:
this.list = list;
</code>
}
Извините - не знаю, почему у меня так много проблем с форматированием кода ...
Исходя из опубликованного вами кода, похоже, что класс AccordionWindow предназначен для создания Аккордеона и его помещения в Коробку. Может быть, у вас есть конкретная потребность делать вещи так, как вы пытаетесь это сделать, но по моему опыту было бы лучше расширить Box, а не UIComponent.
Вы будете сталкиваться с проблемами, создавая дочерние элементы и добавляя их на сцену в конструкторе. Вместо этого переопределите защищенный метод createChildren и переместите весь код, который у вас есть в конструкторе, в этот метод.
createChildren вызывается автоматически, поэтому вам не нужно ничего делать, кроме как переопределить его и переместить в него свой код.
override protected function createChildren():void
{
super.createChildren(); // very important. do not leave this out.
// paste the code that is currently in the constructor here
}
Очень полезный пост о жизненном цикле UIComponent на http://danorlando.com/?p=122.