Да, делай так, как сказал Питер Холл.Используйте DataGroup с макетом плитки.
<s:DataGroup itemRenderer="Groups.DataGroupRenderer">
<s:layout>
<s:TileLayout horizontalGap="5" verticalGap="5" requestedRowCount="3" requestedColumnCount="3"/>
</s:layout>
<s:dataProvider>
<s:ArrayCollection>
<fx:String>1</fx:String>
<fx:String>2</fx:String>
<fx:String>3</fx:String>
<fx:String>4</fx:String>
<fx:String>5</fx:String>
<fx:String>6</fx:String>
<fx:String>7</fx:String>
<fx:String>8</fx:String>
<fx:String>9</fx:String>
</s:ArrayCollection>
</s:dataProvider>
</s:DataGroup>
И средство визуализации:
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true">
<s:TextInput text="{data}"/>
</s:ItemRenderer>
Конечно, если вы знаете Flex хотя бы на базовом уровне, вы будете знать, как все это делать динамически.