2011-07-10 28 views
0

我有延伸spark.componenets.TitleWindowFlex 4 Panel的controlBarContent是否動態?

我想定義一些控件是在控制欄自定義TitleWindow組件(ActionScript編寫的),但我不知道所有控件在創建階段。此外,此自定義組件是其他組件在控制欄中需要其他控件的基礎。

有沒有辦法在運行時將ActionScript控件添加到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