| 
          
           
 
 
          
          
           
            所有 ActionScript 3.0 組件都是繼承自 DisplayObject 類別,因此,存取它的方法和屬性就可以和顯示清單進行互動。「顯示清單」是已顯示物件和應用程式中視覺元素的階層架構。這個階層架構包括下列元素:
            
           
           
            顯示清單中的物件順序決定了它們在父容器中的深度。物件的深度代表該物件在「舞台」上或其顯示容器中由上到下或由前到後的位置。物件重疊時就可以看出深度的順序,但物件不重疊時仍然可以看出深度的順序。顯示清單中的每個物件都有一個在「舞台」上的對應深度。如果要將物件放到最前面,或是移到其它物件後面以變更物件的深度,您必須變更它在顯示清單中的位置。顯示清單中預設的物件順序是之前將它們放入「舞台」時的順序。顯示清單中的位置 0 表示位在深度順序底部的物件。
            
           
           
          
           
            
           
           
            將組件加入到顯示清單
           
           
            
             您可以呼叫容器的
             
              addChild()
             
             或
             
              addChildAt()
             
             方法,將物件加入 DisplayObjectContainer 物件中。如果是在「舞台」上,您可以先建立物件,然後在編寫期間將它加入到它的顯示清單中;如果是加入組件,則可以將它從「組件」面板拖曳到「舞台」上。如果要使用 ActionScript 將物件加入到容器,請先使用
             
              new
             
             運算子叫用物件的建構函式來建立它的實體,然後呼叫
             
              addChild()
             
             或
             
              addChildAt()
             
             方法將它放到「舞台」上和顯示清單中。
             
              addChild()
             
             方法會將物件放入顯示清單中的下一個位置上,而
             
              addChildAt()
             
             則是指定要加入物件的位置。如果指定的位置已經有物件佔用,這個位置上以及它上方的物件將往上移動 1 個位置。DisplayObjectContainer 物件的
             
              numChildren
             
             屬性則包含它所含有的顯示物件數目。從顯示清單擷取物件的方式是,呼叫
             
              getChildAt()
             
             方法並指定位置,或是在知道物件的名稱時呼叫
             
              getChildByName()
             
             方法。
             
            
             
              備註:
             
             如果想透過顯示清單中的名稱來存取物件,在使用 ActionScript 加入組件時就必須將名稱指定給它的 name 屬性。
             
            
             下列範例會從顯示清單中顯示三個組件的名稱和位置。首先,將 NumericStepper、Button 和 ComboBox 拖曳到「舞台」上使它們互相重疊,並設定
             
              aNs
             
             、
             
              aButton
             
             和
             
              aCb
             
             的實體名稱。然後,在「時間軸」之「影格 1」的「動作」面板中,加入下列程式碼:
             
            var i:int = 0; 
while(i < numChildren) { 
    trace(getChildAt(i).name + " is at position: " + i++); 
}
            
             您應該會在「輸出」面板中看到下列結果:
             
            aNs is at position: 0 
aButton is at position: 1 
aCb is at position: 2 
            
           
          
           
            
           
           
            移動顯示清單中的組件
           
           
            
             您可以呼叫
             
              addChildAt()
             
             方法並提供物件的名稱以及您要放入物件的位置做為方法的參數,變更物件在顯示清單和顯示深度中的位置。例如,將下列程式碼加入上一個範例就會將 NumericStepper 放到頂端,再循環執行一次則會顯示組件在顯示清單中的新位置:
             
            this.addChildAt(aNs, numChildren - 1); 
i = 0; 
while(i < numChildren) { 
    trace(getChildAt(i).name + " is at position: " + i++); 
}
            
             您應該會在「輸出」面板中看到下列結果:
             
            aNs is at position: 0 
aButton is at position: 1 
aCb is at position: 2 
aButton is at position: 0 
aCb is at position: 1 
aNs is at position: 2 
            
             NumericStepper 也應該會出現在螢幕上其它組件的前面。
             
            
             請注意,
             
              numChildren
             
             是顯示清單中物件的數目 (從 1 到
             
              n
             
             ),而清單中的第一個位置是 0。因此當清單中有三個物件時,第三個物件的索引位置即是 2。也就是
             
              numChildren - 1
             
             可以用來表示顯示清單的最後一個位置,以顯示深度而言,則是最頂端的物件。
             
            
           
          
           
            
           
           
            移除顯示清單中的組件
           
           
            
             您可以使用
             
              removeChild()
             
             和
             
              removeChildAt()
             
             方法,從顯示物件容器和組件的顯示清單中將組件移除。下列範例會將三個 Button 組件重疊放到「舞台」上,並為每個組件加入事件偵聽程式。當您按一下每個 Button 後,事件處理常式就會將它從顯示清單和「舞台」上移除。
             
            
             - 
              
               建立新的 Flash 檔案 (ActionScript 3.0) 文件。
               
              
             - 
              
               將 Button 從「組件」面板拖曳到「元件庫」面板。
               
              
             - 
              
               開啟「動作」面板,選取主要「時間軸」中的「影格 1」,然後加入下列程式碼:
               
              import fl.controls.Button; 
 
var i:int = 0; 
while(i++ < 3) { 
    makeButton(i); 
} 
function removeButton(event:MouseEvent):void { 
    removeChildAt(numChildren -1); 
} 
function makeButton(num) { 
    var aButton:Button = new Button(); 
    aButton.name = "Button" + num; 
    aButton.label = aButton.name; 
    aButton.move(200, 200); 
    addChild(aButton); 
    aButton.addEventListener(MouseEvent.CLICK, removeButton); 
}
              
               如需顯示清單的完整說明,請參閱「ActionScript 3.0 程式設計」中的「顯示程式設計」。
               
              
             
            
           
          
          
           
          
          
          
          | 
         
          | 
         
          
          |