2012-03-23 11 views
0

複数の子をグループに追加できます。Flex 4.5ランタイムに複数のコンポーネントをコンテナに追加する

私は、私はより多くを追加する方法を知らないだけで一人の子供

<fx:Script> 
    <![CDATA[ 

protected function addNewGroup():void 
{ 
var hg:HGroup = new HGroup(); 
hg.width=100 + "%"; 
hg.height=100 + "%"; 

qItems.addElement(hg); 
} 

    ]]> 
</fx:Script> 

<s:Button label="Add Item" click="addNewGroup()"/> 
<s:VGroup id="qItems" width="100%" height="22"/> 

を渡す得ることができ、一度「qItems」で

<s:HGroup width="100%" height="100%"> 
    <s:Group width="100" height="100%"> 
    <s:TextInput width="100%" editable="false"/> 
    </s:Group> 
    <s:Group width="100%" height="100%"> 
    <s:TextInput width="100%"/> 
    </s:Group> 
</s:HGroup> 

をこの完全なすべてを追加したいです一度に1つのアイテム。私は、この今のところ....私が取ったアプローチは、その後のオブジェクトに配列のコレクションを追加することであったより良い方法

public var hg:HGroup; 
     public var g1:Group; 
     public var g2:Group; 
     public var g3:Group; 
     public var g4:Group; 
     public var g5:Group; 
     public var g6:Group; 
     public var ti1:TextInput; 
     public var ti2:TextInput; 
     public var ti3:TextInput; 
     public var ti4:TextInput; 
     public var ti5:TextInput; 
     public var ti6:TextInput; 

     protected function addNewGroup():void 
     { 
      hg = new HGroup(); 
      hg.width=100 + "%"; 
      hg.height=22; 

      g1 = new Group(); 
      g1.width=100; 
      g1.height=100 + "%"; 
      ti1 = new TextInput(); 
      ti1.width=100 + "%"; 
      ti1.editable=false; 

      g2 = new Group(); 
      g2.width=100 + "%"; 
      g2.height=100 + "%"; 
      ti2 = new TextInput(); 
      ti2.width=100 + "%"; 

      g3 = new Group(); 
      g3.width=100; 
      g3.height=100 + "%";    
      ti3 = new TextInput(); 
      ti3.width=100 + "%"; 

      g4 = new Group(); 
      g4.width=100; 
      g4.height=100 + "%";    
      ti4 = new TextInput(); 
      ti4.width=100 + "%"; 

      g5 = new Group(); 
      g5.width=100; 
      g5.height=100 + "%";   
      ti5 = new TextInput(); 
      ti5.width=100 + "%"; 

      g6 = new Group(); 
      g6.width=100; 
      g6.height=100 + "%";    
      ti6 = new TextInput(); 
      ti6.width=100 + "%"; 

      qItems.addElement(hg); 
      hg.addElement(g1); 
      g1.addElement(ti1); 
      hg.addElement(g2); 
      g2.addElement(ti2); 
      hg.addElement(g3); 
      g3.addElement(ti3); 
      hg.addElement(g4); 
      g4.addElement(ti4); 
      hg.addElement(g5); 
      g5.addElement(ti5); 
      hg.addElement(g6); 
      g6.addElement(ti6); 
+0

ロバート、あなたは本当に、あなたの質問に対する答えの一つを受け入れることを検討するべきです。これは、スタックオーバーフローの仕組みです。詳細については、[ツアー]と[質問]ページをお読みください。 –

答えて

1

探している

おかげ

UPDATE

そのコレクションを通して各ループに対してaを実行し、ループから親コンテナへのadd要素を実行します。例えば

for each (var visualElement:Object in CollectionOfObjects){ 
    var newWrappingFormItem:WrappingFormItem = new WrappingFormItem(); 
    newWrappingFormItem.maxLabelWidth = 100; 
    newWrappingFormItem.wrapLabel = true;  
    newWrappingFormItem.label = "Label Name"; 
    newWrappingFormItem.addElement(visualElement); 
    parentContainer.addChild(newWrappingFormItem); 
} 

この例では、ラッピングフォーム項目を使用しているが、あなたは、他の構成要素のために作成するために、同じロジックを使用することができます。

関連する問題