Любой компонент MXML может быть создан с помощью AS3. Вы можете использовать событие creationComplete для вызова метода, который создает ваши компоненты и добавляет их в список отображения. См. Пример ниже, который создает кнопку и HGroup в AS3, затем делает кнопку дочерним элементом HGroup, а Hgroup - дочерним элементом панели.
<s:Panel creationComplete="createButtonComponent(event)">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Button;
import mx.events.FlexEvent;
import spark.components.HGroup;
protected function buttonClickHandler(event:MouseEvent):void
{
// Do something
}
protected function createButtonComponent(event:FlexEvent):void
{
var group:HGroup = new HGroup();
group.percentHeight = 20;
group.percentWidth = 100;
var myButton:Button = new Button();
myButton.label = 'My Button';
myButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
group.addElement(myButton);
this.addElement(group);
}
]]>
</fx:Script>
</s:Panel>
Этот код выше похож на следующий MXML:
<s:Panel creationComplete="createButtonComponent(event)">
<s:HGroup id="group" height="20%" width="100%">
<mx:Button id="myButton" label="My Button" click="buttonClickHandler" />
</s:HGroup>
</s:Panel>