2011-07-10 11 views
0

spark.componenets.TitleWindowを拡張するカスタムTitleWindowコンポーネントがあります。Flex 4 PanelのcontrolBarContentは動的ですか?

いくつかのコントロールをコントロールバーに定義する必要がありますが、作成段階ですべてのコントロールがありません。また、このカスタムコンポーネントは、コントロールバーに他のコントロールを必要とする他のコンポーネントのベースです。

実行時にActionScriptのcontrolBarContentにコントロールを追加する方法はありますか?

多分次のようなものでしょうか?一般的に

controlBarContent = []; 
. 
. 
. 
controlBarContent.push(new Button()); 

答えて

2

を(これは明らかに動作しませんでした)、

addElement() 

または

addChild() 

方法を探してください。

addElement()は他のコンポーネントのサブ要素として他のUIコンポーネントを追加します。

Thisが該当します。 Finnaly、Adobeはここで良い助けを提供します:'Working with components'

UPDATE-1

申し訳ありませんが、私のせい。これは私のために働く:

<s:Panel creationComplete="init();" id='p' controlBarVisible="true" > 

    <s:controlBarContent> 

     <!-- will show controls --> 
     <s:Button label="dd"> 

     </s:Button> 

    </s:controlBarContent> 


    <fx:Script> 
     <![CDATA[ 
      import mx.controls.Button; 

      import spark.components.Button; 

      private function init(): void { 

       var s:spark.components.Label = new spark.components.Label(); 
       s.text = 'My Label'; 
       s.width = 200; 

       var a:Array = new Array(); 
       a.push(s); 

       p.controlBarVisible = false; 
       p.controlBarContent = a; 
       p.controlBarVisible = true; 

       p.invalidateDisplayList(); 

      } 

     ]]> 
    </fx:Script> 

</s:Panel> 
+0

controlBarContentは配列です。 addElementまたはaddChildはありません。 – Ofir

+0

あまりにも悪いです。私は自分の答えを更新しました。 – SteAp

+0

ありがとう、これは動作するようです。何らかの理由で、私は必要な結果を得られなかった配列に新しい項目を押し込むだけでした。 – Ofir

関連する問題