Здравствуйте, есть простенький MXML компонент на основе SkinnableContainer:

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:SkinnableContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
styleName="mySkin"
addedToStage="init()">
<s:states>
<s:State name="active"/>
<s:State name="inactive"/>
</s:states>
<fx:Script>
<![CDATA[
import spark.components.Button;
public var selectButton:Button = new Button;
public var closeButton:Button = new Button;
private function init():void
{
selectButton.styleName = 'SelectButton';
closeButton.styleName = 'CloseButton';
this.addElement(selectButton);
this.addElement(closeButton);
}
]]>
</fx:Script>
<!--
<s:Button id="selectButton" includeIn="active, inactive" styleName="SelectButton" />
<s:Button id="closeButton" includeIn="active" styleName="CloseButton"/>
-->
</s:SkinnableContainer>
Как видно, AS3 код добавляет две кнопки. Тоже самое делается ниже через mxml синтаксис(закоментировано). При добавлении этого компонента где-либо в программе, мне нужно тут же обратиться к его дочерним объектам, то бишь кнопкам.
Если использовать mxml синтаксис, то при обращении к кнопке, вылетает ошибка:"
Cannot access a property or method of a null object reference". Если использовать AS3, то все работает ок. Вердикт в том, что кнопки, добавленные через mxml синтаксис, не успевают инициализироваться на момент обращения к ним извне.
Проблема заключается в том, что мне нужно в данном компоненте использовать, как раз mxml, поэтому хотелось бы как-то обойти этот нюанс.
Заранее благодарен за любой совет или помощь.