2012-02-19 62 views

回答

0

Yeap,就像Peter Hall說的那樣。使用數據組與瓷磚佈局。

<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,你就會知道如何做到這一點的所有動態。

+0

哦,謝謝。我這樣做,但我似乎無法檢索TextInput的內容。當我在ArrayCollection上調用getItemAt時,它返回一個Object,它不允許我將對象轉換回TextInput,我可以在 – 2012-02-21 16:20:18

+0

上調用'Text'嗯,我不確定我是否理解你。例如,如果你想獲得3x3矩陣中的中間'TextInput'值,你只需爲'DataGroup'分配'id =「dp」'並寫入:'dp.dataProvider.getItemAt(5)'你應該得到String文本'「5」'在這個例子中。 – randomUser56789 2012-02-22 08:30:47

+0

如果你想設置一些'TextInput'你改變'dataProvider',那麼'DataGroup'將只依賴於它的'dataProvider',如果你想檢索,你從'dataProvider'中讀取。你不必直接用'TextInput'做任何事情。 – randomUser56789 2012-02-22 08:38:39

0

使用帶有TileLayout的DataGroup 。

+0

請升級更具體嗎? – 2012-02-19 21:51:41