2012-02-19 33 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