適用於 Adobe® Flash® Platform 的 ActionScript® 3.0 參考
首頁  |  隱藏套件和類別清單 |  套件  |  類別  |  新增內容  |  索引  |  附錄  |  為什麼顯示英文?
篩選: 從伺服器擷取資料...
從伺服器擷取資料...
flash.display 

DisplayObjectContainer  - AS3

套件flash.display
類別public class DisplayObjectContainer
繼承DisplayObjectContainer Inheritance InteractiveObject Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object
子類別 Loader, Sprite, Stage, TextLine

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

DisplayObjectContainer 類別是顯示清單上可以當作顯示物件容器的所有物件的基底類別。 顯示清單會管理 Flash 執行階段中顯示的所有物件。您可以使用 DisplayObjectContainer 類別來排列顯示清單中的顯示物件。 每個 DisplayObjectContainer 物件都有自己的子清單,可用來管理物件的 z-order (深度階層,由前至後順序)。 z-order 是一種由前至後的順序,可決定哪個物件要繪製在前面,哪個在後面,以此類推。

DisplayObject 是抽象的基底類別,因此,您無法直接呼叫 DisplayObject。 叫用 new DisplayObject() 會擲出 ArgumentError 例外。

DisplayObjectContainer 類別是所有可以包含子物件之物件的抽象基底類別。 您無法直接將它實體化,因為呼叫 new DisplayObjectContainer() 建構函式會擲出 ArgumentError 例外。

如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「顯示程式設計」一章。

檢視範例

相關 API 元素



公用屬性
 屬性定義自
 InheritedaccessibilityImplementation : AccessibilityImplementation
對此 InteractiveObject 實體目前的輔助功能實作 (AccessibilityImplementation)。
InteractiveObject
 InheritedaccessibilityProperties : AccessibilityProperties
此顯示物件的目前輔助功能選項。
DisplayObject
 Inheritedalpha : Number
指出所指定物件的 Alpha 透明度值。
DisplayObject
 InheritedblendMode : String
來自 BlendMode 類別的值,會指定要使用何種混合模式。
DisplayObject
 InheritedblendShader : Shader
[唯寫] 設定用來混合前景和背景的著色器。
DisplayObject
 InheritedcacheAsBitmap : Boolean
如果設定為 true,Flash 執行階段會快取顯示物件的內部點陣圖表示法。
DisplayObject
 Inherited    cacheAsBitmapMatrix : Matrix
如果為非 null,當 cacheAsBitmap 設定為 true 時,這個 Matrix 物件會定義顯示物件的顯示方法。
DisplayObject
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
 InheritedcontextMenu : NativeMenu
指定與此物件有關聯的快顯選單。
InteractiveObject
 InheriteddoubleClickEnabled : Boolean
會指定物件是否會收到 doubleClick 事件。
InteractiveObject
 Inheritedfilters : Array
索引的陣列,其中包含目前和顯示物件相關的每個濾鏡物件。
DisplayObject
 InheritedfocusRect : Object
會指定這個物件是否會顯示焦點矩形。
InteractiveObject
 Inheritedheight : Number
會指出顯示物件的高度,以像素為單位。
DisplayObject
 InheritedloaderInfo : LoaderInfo
[唯讀] 會傳回 LoaderInfo 物件,其中包含關於載入此顯示物件所屬之檔案的資訊。
DisplayObject
 Inheritedmask : DisplayObject
呼叫之顯示物件會以指定的 mask 物件遮蓋。
DisplayObject
 InheritedmetaData : Object
如果中繼資料是透過 PlaceObject4 標籤與 SWF 檔案中的這個 DisplayObject 實體一同儲存,則會取得 DisplayObject 實體的中繼資料物件。
DisplayObject
  mouseChildren : Boolean
判斷物件的子系是否支援啟用滑鼠或使用者輸入裝置。
DisplayObjectContainer
 InheritedmouseEnabled : Boolean
指定此物件是否接收滑鼠或其他使用者輸入及訊息。
InteractiveObject
 InheritedmouseX : Number
[唯讀] 指出滑鼠或使用者輸入裝置位置的 x 座標,以像素為單位。
DisplayObject
 InheritedmouseY : Number
[唯讀] 指出滑鼠或使用者輸入裝置位置的 y 座標,以像素為單位。
DisplayObject
 Inheritedname : String
指出 DisplayObject 的實體名稱。
DisplayObject
 InheritedneedsSoftKeyboard : Boolean
指定虛擬鍵盤 (螢幕上的軟體鍵盤) 是否應在此 InteractiveObject 實體接收到焦點時顯示。
InteractiveObject
  numChildren : int
[唯讀] 傳回此物件的子系數量。
DisplayObjectContainer
 InheritedopaqueBackground : Object
會指定顯示物件是否不透明,並具有特定背景顏色。
DisplayObject
 Inheritedparent : DisplayObjectContainer
[唯讀] 指出包含此顯示物件的 DisplayObjectContainer 物件。
DisplayObject
 Inheritedroot : DisplayObject
[唯讀] 對載入之 SWF 檔案的顯示物件而言,root 屬性就是該 SWF 檔案所呈現之顯示清單樹狀結構部分的最上層顯示物件。
DisplayObject
 Inheritedrotation : Number
指出 DisplayObject 實體的旋轉度數 (從該物件原本方向算起)。
DisplayObject
 InheritedrotationX : Number
表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 x 軸旋轉 (以度數為單位)。
DisplayObject
 InheritedrotationY : Number
表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 y 軸旋轉 (以度數為單位)。
DisplayObject
 InheritedrotationZ : Number
表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 z 軸旋轉 (以度數為單位)。
DisplayObject
 Inheritedscale9Grid : Rectangle
目前產生效用的縮放格線。
DisplayObject
 InheritedscaleX : Number
指出從註冊點套用的物件水平縮放 (百分比)。
DisplayObject
 InheritedscaleY : Number
指出從物件註冊點套用的物件垂直縮放 (百分比)。
DisplayObject
 InheritedscaleZ : Number
指出從物件註冊點套用的物件深度縮放 (百分比)。
DisplayObject
 InheritedscrollRect : Rectangle
顯示物件的捲動矩形範圍。
DisplayObject
 Inherited    softKeyboard : String
控制軟體鍵盤的外觀。
InteractiveObject
 InheritedsoftKeyboardInputAreaOfInterest : Rectangle
定義顯示軟體鍵盤時,應保留於螢幕上的區域 (iOS 未提供)。
InteractiveObject
 Inheritedstage : Stage
[唯讀] 顯示物件的「舞台」。
DisplayObject
  tabChildren : Boolean
判斷物件的子系是否支援啟用定位鍵。
DisplayObjectContainer
 InheritedtabEnabled : Boolean
會指定這個物件是否在停駐點順序中。
InteractiveObject
 InheritedtabIndex : int
會指定 SWF 檔中的物件停駐點順序。
InteractiveObject
  textSnapshot : flash.text:TextSnapshot
[唯讀] 傳回此 DisplayObjectContainer 實體的 TextSnapshot 物件。
DisplayObjectContainer
 Inheritedtransform : flash.geom:Transform
這是一個物件,具有和顯示物件的矩陣、顏色轉換和像素邊界有關的屬性。
DisplayObject
 Inheritedvisible : Boolean
不管是否看得見顯示物件。
DisplayObject
 Inheritedwidth : Number
會指出顯示物件的寬度,以像素為單位。
DisplayObject
 Inheritedx : Number
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 x 座標。
DisplayObject
 Inheritedy : Number
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 y 座標。
DisplayObject
 Inheritedz : Number
表示 DisplayObject 實體相對於 3D 父輩容器的 z 座標位置 (沿著 z 軸)。
DisplayObject
公用方法
 方法定義自
  
呼叫 new DisplayObjectContainer() 建構函式會擲回 ArgumentError 例外。
DisplayObjectContainer
  
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。
DisplayObjectContainer
  
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。
DisplayObjectContainer
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。
EventDispatcher
  
指出安全性限制是否會造成傳回的清單 (可用指定的 point 點呼叫 DisplayObjectContainer.getObjectsUnderPoint() 方法來取得) 省略任何顯示物件。
DisplayObjectContainer
  
判斷指定的顯示物件是否為 DisplayObjectContainer 實體的子系,或為實體本身。
DisplayObjectContainer
 Inherited
會將事件傳送到事件流程。
EventDispatcher
 Inherited
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
傳回可定義顯示物件區域 (相對於 targetCoordinateSpace 物件的座標系統) 的矩形。
DisplayObject
  
傳回存在於指定索引位置的子顯示物件實體。
DisplayObjectContainer
  
傳回具有指定名稱的子顯示物件。
DisplayObjectContainer
  
傳回 child DisplayObject 實體的索引位置。
DisplayObjectContainer
  
傳回位於指定點底下,且屬於此 DisplayObjectContainer 實體之子系 (或孫系,以下類推) 的物件陣列。
DisplayObjectContainer
 Inherited
getRect(targetCoordinateSpace:DisplayObject):Rectangle
根據 targetCoordinateSpace 參數所定義的座標系統,並排除形狀上的任何筆畫,傳回可定義顯示物件邊界的矩形。
DisplayObject
 Inherited
將 point 物件從「舞台」(全域) 座標轉換成顯示物件的 (區域) 座標。
DisplayObject
 Inherited
將二維點從「舞台」(全域) 座標轉換為三維顯示物件的 (區域) 座標。
DisplayObject
 Inherited
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。
EventDispatcher
 Inherited
指出物件是否有已定義的指定屬性。
Object
 Inherited
評估顯示物件的範圍框,看它是否與 obj 顯示物件的範圍框重疊或相交。
DisplayObject
 Inherited
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
評估顯示物件,看它是否與 x 和 y 參數所指定的點重疊或相交。
DisplayObject
 Inherited
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。
Object
 Inherited
將三維顯示物件的 (區域) 座標的三維點轉換為「舞台」(全域) 座標中的二維點。
DisplayObject
 Inherited
將 point 物件從顯示物件的 (區域) 座標轉換成「舞台」(全域) 座標。
DisplayObject
 Inherited
指出指定的屬性是否存在,以及是否可列舉。
Object
  
將指定的 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。
DisplayObjectContainer
  
從 DisplayObjectContainer 子清單中的指定索引位置移除子 DisplayObject。
DisplayObjectContainer
  
removeChildren(beginIndex:int = 0, endIndex:int = 0x7fffffff):void
將所有 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。
DisplayObjectContainer
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
會從 EventDispatcher 物件移除偵聽程式。
EventDispatcher
 Inherited
升起顯示虛擬鍵盤。
InteractiveObject
  
變更顯示物件容器中現有子系的位置。
DisplayObjectContainer
 Inherited
為迴圈作業設定動態屬性的可用性。
Object
  
遞迴停止執行所有 MovieClips 的時間軸根源於此物件。
DisplayObjectContainer
  
替換兩個指定子物件的 z 順序 (深度階層,由前至後順序)。
DisplayObjectContainer
  
swapChildrenAt(index1:int, index2:int):void
在子清單的兩個指定索引位置,替換子物件的 z 順序 (深度階層,由前至後順序)。
DisplayObjectContainer
 Inherited
傳回代表此物件的字串,根據地區特定慣例進行格式化。
Object
 Inherited
會傳回指定之物件的字串形式。
Object
 Inherited
會傳回指定之物件的基本值。
Object
 Inherited
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。
EventDispatcher
事件
 事件 摘要 定義自
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。EventDispatcher
 Inherited當顯示物件加入顯示清單中時傳送。DisplayObject
 Inherited會在顯示物件加入舞台上的顯示清單時,以直接或是透過加入包含該顯示物件之子樹狀結構的方式傳送。DisplayObject
 Inherited當使用者從文字快顯選單中選取「清除」(或「刪除」) 時傳送。InteractiveObject
 Inherited會當使用者在相同的 InteractiveObject 上方按下並放開使用者的指向裝置主按鈕時傳送。InteractiveObject
 Inherited
    contextMenu
當使用者手勢在 AIR 應用程式中觸發與此互動式物件相關聯的快顯選單時傳送。InteractiveObject
 Inherited當使用者針對複製作業啟動平台特有的快速鍵組合或從文字快顯選單中選取「複製」時傳送。InteractiveObject
 Inherited當使用者針對剪下作業啟動平台特有的快速鍵組合或從文字快顯選單中選取「剪下」時傳送。InteractiveObject
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。EventDispatcher
 Inherited在 InteractiveObject 物件的 doubleClickEnabled 旗標設為 true 的情況下,當使用者在相同的物件上方連續兩次快速按下並放開指標裝置主要按鈕時傳送。InteractiveObject
 Inherited[廣播事件] 當播放磁頭進入新影格時傳送。DisplayObject
 Inherited[廣播事件] 當播放磁頭結束目前影格時傳送。DisplayObject
 Inherited當顯示物件取得焦點之後傳送。InteractiveObject
 Inherited當顯示物件失去焦點時傳送。InteractiveObject
 Inherited[廣播事件] 在影格顯示物件的建構函式執行之後,且影格指令碼執行之前傳送。DisplayObject
 Inherited當使用者沿著觸控面與 InteractiveObject 實體建立接觸點 (例如沿著 Apple TV 的 Siri Remote 觸控面點選),某些裝置可能也會將此接觸解譯為數個觸控事件的組合。InteractiveObject
 Inherited當使用在觸控裝置上的同一個 InteractiveObject 實體上按下兩個接觸點後送出 (例如在行動電話或平板電腦觸控螢幕的顯示物件上方,以兩支手指按下後鬆開)。InteractiveObject
 Inherited當使用者在觸控裝置上,將接觸點移動到 InteractiveObject 實體上方後傳送 (例如,在行動電話或平板電腦觸控螢幕的顯示物件上,由左向右移動手指)。InteractiveObject
 Inherited當使用者在 InteractiveObject 實體的接觸點上做出旋轉手勢後傳送 (例如兩指觸摸行動電話或平板電腦的觸控螢幕,然後手指在顯示物件上旋轉)。InteractiveObject
 Inherited當使用者在與 InteractiveObject 實體的某個接觸點上做出揮動手勢後傳送 (例如,三指併在一起觸碰行動電話或平板電腦的觸控螢幕,然後在顯示物件上快速平行移動手指)。InteractiveObject
 Inherited當使用者與 InteractiveObject 實體建立接觸點,然後在觸控裝置上點一下後送出 (例如,將多根手指放到行動電話或平板電腦觸控螢幕的顯示物件上以開啟選單,然後其中一根手點一下,選取選單項目)。InteractiveObject
 Inherited當使用者在 InteractiveObject 實體的某個接觸點上做出放大縮小手勢後傳送 (例如兩指併在一起觸摸行動電話或平板電腦的觸控螢幕,然後手指在顯示物件上快速張開)。InteractiveObject
 Inherited這個事件會送出至任何支援 IME 內嵌輸入的用戶端應用程式。InteractiveObject
 Inherited會當使用者按下按鍵時傳送。InteractiveObject
 Inherited當使用者嘗試使用鍵盤瀏覽變更焦點時傳送。InteractiveObject
 Inherited會當使用者放開按鍵時傳送。InteractiveObject
 Inherited當使用者在相同的 InteractiveObject 上方按下並放開使用者的指向裝置中間按鈕時傳送。InteractiveObject
 Inherited當使用者將指向裝置的中間按鈕移至 InteractiveObject 實體上方按下時傳送。InteractiveObject
 Inherited當使用者將指向裝置按鈕移至 InteractiveObject 實體上方放開時傳送。InteractiveObject
 Inherited當使用者將指向裝置按鈕移至 InteractiveObject 實體上方按下時傳送。InteractiveObject
 Inherited會當使用者嘗試使用指向裝置變更焦點時傳送。InteractiveObject
 Inherited會當指向裝置停在 InteractiveObject 上方的情況下使用者將其移動時傳送。InteractiveObject
 Inherited會當使用者將指向裝置移開 InteractiveObject 實體時傳送。InteractiveObject
 Inherited會當使用者將指向裝置移至 InteractiveObject 實體上方時傳送。InteractiveObject
 Inherited當使用者將指向裝置按鈕移至 InteractiveObject 實體上方放開時傳送。InteractiveObject
 Inherited當滑鼠滾輪在 InteractiveObject 實體上方轉動時傳送。InteractiveObject
 Inherited當使用者釋放手勢時,由拖曳初始程式 InteractiveObject 傳送。InteractiveObject
 Inherited已在目標 InteractiveObject 上放下拖曳的物件,而且已呼叫 DragManager.acceptDragDrop() 接受該放開的資料時,由此目標 InteractiveObject 傳送。InteractiveObject
 Inherited當手勢進入 InteractiveObject 的邊界時,由此 InteractiveObject 傳送。InteractiveObject
 Inherited當手勢離開 InteractiveObject 的邊界時,由此 InteractiveObject 傳送。InteractiveObject
 Inherited當拖曳手勢還留在 InteractiveObject 的邊界內,由此 InteractiveObject 持續傳送。InteractiveObject
 Inherited在呼叫 DragManager.doDrag() 進行拖曳作業初期,由指定做為拖曳初始程式的 InteractiveObject 傳送。InteractiveObject
 Inherited在呼叫 DragManager.doDrag() 進行拖曳作業期間,由指定做為拖曳初始程式的 InteractiveObject 傳送。InteractiveObject
 Inherited當使用者針對貼上作業啟動平台特有的快速鍵組合或從文字快顯選單中選取「貼上」時傳送。InteractiveObject
 Inherited在使用者將作用中觸控筆往下移至超過螢幕鄰近偵測邊框時傳送。InteractiveObject
 Inherited
    proximityEnd
在使用者將作用中觸控筆提到螢幕鄰近偵測邊框時傳送。InteractiveObject
 Inherited在使用者將作用中觸控筆移到螢幕上方,而其餘仍在鄰近偵測邊框內時傳送。InteractiveObject
 Inherited
    proximityOut
在使用者將作用中觸控筆移出這個 InteractiveObject 之外,而其餘仍在螢幕的鄰近偵測邊框內時傳送。InteractiveObject
 Inherited在使用者直接將作用中觸控筆移到這個 InteractiveObject 上方,而其餘仍在螢幕的鄰近偵測邊框內時傳送。InteractiveObject
 Inherited在使用者將作用中觸控筆移出這個 InteractiveObject 及其任一子系之外,而其餘仍在螢幕的鄰近偵測邊框內時傳送。InteractiveObject
 Inherited在使用者透過這個 InteractiveObject,從顯示清單中後代的物件樹狀結構之外移動作用中觸控筆時傳送 (而其餘仍在螢幕的鄰近偵測邊框內)。InteractiveObject
 Inherited當使用者第一次按下 InteractiveObject 實體上方的按鈕,然後將指向裝置滑出 InteractiveObject 實體之後即放開指向裝置上的按鈕時傳送。InteractiveObject
 Inherited會當顯示物件將要從顯示清單移除時傳送。DisplayObject
 Inherited會在顯示物件即將從顯示清單移除時,以直接或是透過移除包含該顯示物件之子樹狀結構的方式傳送。DisplayObject
 Inherited[廣播事件] 當顯示清單將要更新和顯示時傳送。DisplayObject
 Inherited當使用者在相同的 InteractiveObject 上方按下並放開使用者的指向裝置右邊按鈕時傳送。InteractiveObject
 Inherited當使用者將指向裝置按鈕移至 InteractiveObject 實體上方按下時傳送。InteractiveObject
 Inherited當使用者將指向裝置按鈕移至 InteractiveObject 實體上方放開時傳送。InteractiveObject
 Inherited會當使用者將指向裝置移開 InteractiveObject 實體時傳送。InteractiveObject
 Inherited會當使用者將指向裝置移至 InteractiveObject 實體上方時傳送。InteractiveObject
 Inherited當使用者針對全選作業啟動平台特有的快速鍵組合或從文字快顯選單中選取「全選」時傳送。InteractiveObject
 Inherited升起顯示軟體鍵盤之後立即傳送。InteractiveObject
 Inherited升起顯示軟體鍵盤前立即傳送。InteractiveObject
 Inherited降下隱藏軟體鍵盤之後立即傳送。InteractiveObject
 Inherited在物件的 tabChildren 旗標值變更時傳送。InteractiveObject
 Inherited在物件的 tabEnabled 旗標變更時傳送。InteractiveObject
 Inherited在物件的 tabIndex 屬性值變更時傳送。InteractiveObject
 Inherited當使用者輸入一或多文字的字元時送出。InteractiveObject
 Inherited當使用者在第一次接觸觸控裝置後傳送 (例如手指觸摸行動電話或平板電腦的觸控螢幕)。InteractiveObject
 Inherited當使用者在觸控裝置上移除接觸點後傳送 (例如在行動電話或平板電腦觸控螢幕上移開手指)。InteractiveObject
 Inherited當使用者觸控裝置時傳送,並且連續不斷地傳送,直到接觸點移除為止。InteractiveObject
 Inherited當使用者在觸控裝置中,將接觸點移出 InteractiveObject 實體後送出 (例如在行動電話或平板電腦的觸控螢幕上,將手指從顯示物件移至另一個顯示物件)。InteractiveObject
 Inherited當使用者在觸控裝置中將接觸點移至 InteractiveObject 實體上方後送出 (例如在行動電話或平板電腦的觸控螢幕上,將手指從顯示物件外面的某一點,往顯示物件上方拖曳)。InteractiveObject
 Inherited當使用者在觸控裝置上,將接觸點從 InteractiveObject 實體移出後送出 (例如,在行動電話或平板電腦的觸控螢幕上,將手指從顯示物件上方拖曳到顯示物件以外)。InteractiveObject
 Inherited當使用者在觸控裝置中將接觸點移至 InteractiveObject 實體上方後送出 (例如在行動電話或平板電腦的觸控螢幕上,將手指從顯示物件外面的某一點,往顯示物件上方拖曳)。InteractiveObject
 Inherited當使用者在觸控裝置的同一個 InteractiveObject 實體上,在原先開始接觸點放開後送出 (例如在行動電話或平板電腦觸控螢幕上的顯示物件上方,以手指按下某個點後又鬆開)。InteractiveObject
屬性詳細資訊

mouseChildren

屬性
mouseChildren:Boolean

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

判斷物件的子系是否支援啟用滑鼠或使用者輸入裝置。如果啟用某個物件,則使用者可以使用滑鼠或使用者輸入裝置,與其進行互動。預設值為 true

當您使用 Sprite 類別 (而不是使用 SimpleButton 類別) 來建立按鈕時,這個方法就會很有用。 當您使用 Sprite 實體來建立按鈕時,可以選擇使用 addChild() 方法加入額外的 Sprite 實體來裝飾按鈕。 此程序可能會造成未預期的滑鼠事件行為,因為當做子系加入的 Sprite 實體可能會在您預期父輩實體將成為目標物件時,成為滑鼠事件的目標物件。 為了確保父輩實體能夠當作滑鼠事件的目標物件來運作,可以將父輩實體的 mouseChildren 屬性設為 false

設定這個屬性不會傳送任何事件。 您必須使用 addEventListener() 方法來建立互動式功能。



實作
    public function get mouseChildren():Boolean
    public function set mouseChildren(value:Boolean):void

相關 API 元素


範例  ( 如何使用本範例 )
下列範例會設定名為 container 的 Sprite 物件 (一種顯示物件容器類型),然後在您將其 mouseChildren 屬性設為 false 時顯示此物件,此時 mouseClick 事件的目標將是 container 物件,而不是其子物件當中的任何一個:
import flash.display.Sprite;
import flash.events.MouseEvent;

var container:Sprite = new Sprite();
container.name = "container";
addChild(container);

var circle:Sprite = new Sprite();
circle.name = "circle";
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(40, 40, 40);

container.addChild(circle);

container.mouseChildren = false;

container.addEventListener(MouseEvent.CLICK, clicked);

function clicked(event:MouseEvent):void {
    trace(event.target.name); // container
}

numChildren

屬性 
numChildren:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

傳回此物件的子系數量。



實作
    public function get numChildren():int

範例  ( 如何使用本範例 )
下列範例會設定兩個 Sprite 物件,分別名為 container1container2。 Sprite 是一種顯示物件容器類型。 此範例會呼叫 addChild() 方法來設定顯示階層: container1container2 的子系,而其它兩個顯示物件 circle1circle2container1的子系。 trace() 方法的呼叫會顯示每個物件的子系數目。 請注意,孫系並不會包含在 numChildren 的計數中:
import flash.display.Sprite;

var container1:Sprite = new Sprite();
var container2:Sprite = new Sprite();

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill(0xFFCC00);
circle1.graphics.drawCircle(40, 40, 40);

var circle2:Sprite = new Sprite();
circle2.graphics.beginFill(0x00CCFF);
circle2.graphics.drawCircle(80, 40, 40);

container2.addChild(container1);
container1.addChild(circle1);
container1.addChild(circle2);

trace(container1.numChildren); // 2
trace(container2.numChildren); // 1
trace(circle1.numChildren); // 0
trace(circle2.numChildren); // 0

tabChildren

屬性 
tabChildren:Boolean

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

判斷物件的子系是否支援啟用定位鍵。 啟用或停用物件子系的定位鍵。 預設值為 true

注意:請勿將 tabChildren 屬性與 Flex 一起使用。請改為使用 mx.core.UIComponent.hasFocusableChildren 屬性。



實作
    public function get tabChildren():Boolean
    public function set tabChildren(value:Boolean):void

擲回值
IllegalOperationError — 呼叫這個 Stage 物件屬性會擲回例外。 Stage 物件無法實作這個屬性。

範例  ( 如何使用本範例 )
下列範例會建立 container1 顯示物件容器,並將 circle1circle2 兩個顯示物件加入至此容器的子清單中。 這個範例會將 tabChildren 設定為 false,讓子系可以藉由使用 tabIndex 管理自己擁有的定位停駐點順序:
import flash.display.Sprite;

var container:Sprite = new Sprite();
container.tabChildren = false;

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill(0xFFCC00);
circle1.graphics.drawCircle(40, 40, 40);
circle1.tabIndex = 1;

var circle2:Sprite = new Sprite();
circle2.graphics.beginFill(0x00CCFF);
circle2.graphics.drawCircle(120, 40, 40);
circle2.tabIndex = 0;

container.addChild(circle1);
container.addChild(circle2);
若要檢視此範例的結果,請編譯並執行檔案。 當您選取其中一個圓形時,就可以按下 TAB 鍵來切換成為焦點的顯示物件 (具有黃色反白標示的矩形)。

textSnapshot

屬性 
textSnapshot:flash.text:TextSnapshot  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9

傳回此 DisplayObjectContainer 實體的 TextSnapshot 物件。



實作
    public function get textSnapshot():flash.text:TextSnapshot

相關 API 元素


範例  ( 如何使用本範例 )
下列範例只能在 Flash 編寫環境中運作。 Flex 不包含以任何方式將靜態文字加入檔案中。 若要準備 Flash 檔案以便執行此範例,請在影片的第一個影格中加入一個或多個靜態文字欄位。 然後,將下列程式碼插入第一個影格,接著執行檔案。 輸出將會是您加入的靜態文字:
trace(this.textSnapshot.getText(0, this.textSnapshot.charCount));
建構函式詳細資料

DisplayObjectContainer

()建構函式
public function DisplayObjectContainer()

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

呼叫 new DisplayObjectContainer() 建構函式會擲出 ArgumentError 例外。 然而,您「可以」呼叫下列 DisplayObjectContainer 之子類別的建構函式:

  • new Loader()
  • new Sprite()
  • new MovieClip()

方法詳細資訊

addChild

()方法
public function addChild(child:DisplayObject):DisplayObject

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。 此子系會加入到此 DisplayObjectContainer 實體中所有其它子系的前面 (上層)。(若要將子系加入至特定的索引位置,請使用 addChildAt() 方法)。

如果您加入一個已經包含不同顯示物件容器的子物件做為父物件,則物件會從其它顯示物件容器的子清單中移除。

注意:命令 stage.addChild() 會導致發佈的 SWF 檔案發生問題,包括安全性問題以及與其他載入 SWF 檔案的衝突。無論您載入多少 SWF 檔案到執行階段中 ,Flash 執行階段實體中只會有一個舞台。因此,在一般情況下不該將物件直接新增至舞台。舞台唯一該包含的物件就是根物件。建立一個 DisplayObjectContainer 來包含顯示清單中的所有項目。然後,視需要將 DisplayObjectContainer 新增至舞台。

參數

child:DisplayObject — 要新增做為此 DisplayObjectContainer 實體子系的 DisplayObject 實體。

傳回值
DisplayObject — 您傳遞至 child 參數的 DisplayObject 實體。

事件
added:Event — 當顯示物件加入顯示清單中時傳送。

擲回值
ArgumentError — 如果子系與父輩相同的話,則擲出例外。 如果呼叫者為所加入之子系的子系 (或孫系,依此類推), 也會擲回例外。

相關 API 元素


範例  ( 如何使用本範例 )

下列範例會設定兩個 Sprite 物件,分別名為 container1container2。 Sprite 是一種顯示物件容器類型。 此範例會呼叫 addChild() 方法來設定顯示階層: container1container2 的子系,而其它兩個顯示物件 circle1circle2container1的子系。 trace() 方法的呼叫會顯示每個物件的子系數目。 請注意,孫系並不會包含在 numChildren 的計數中:
import flash.display.Sprite;

var container1:Sprite = new Sprite();
var container2:Sprite = new Sprite();

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill(0xFFCC00);
circle1.graphics.drawCircle(40, 40, 40);

var circle2:Sprite = new Sprite();
circle2.graphics.beginFill(0x00CCFF);
circle2.graphics.drawCircle(80, 40, 40);

container2.addChild(container1);
container1.addChild(circle1);
container1.addChild(circle2);

trace(container1.numChildren); // 2
trace(container2.numChildren); // 1
trace(circle1.numChildren); // 0
trace(circle2.numChildren); // 0

addChildAt

()方法 
public function addChildAt(child:DisplayObject, index:int):DisplayObject

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。 子系會加入至指定的索引位置。 0 的索引代表位於此 DisplayObjectContainer 物件的顯示清單後面 (下層)。

例如,下列範例將說明三個加上 a、b 與 c 標籤的顯示物件,分別位於 0、2 與 1 的索引位置:

b 在 c 上面,c 在 a 上面

如果您加入一個已經包含不同顯示物件容器的子物件做為父物件,則物件會從其它顯示物件容器的子清單中移除。

參數

child:DisplayObject — 要新增做為此 DisplayObjectContainer 實體子系的 DisplayObject 實體。
 
index:int — 子實體加入所在的索引位置。 如果您指定一個目前已佔用的索引位置,則存在該位置與所有更上層位置的子物件都會由原本的子清單位置往上移動一個位置。

傳回值
DisplayObject — 您傳遞至 child 參數的 DisplayObject 實體。

事件
added:Event — 當顯示物件加入顯示清單中時傳送。

擲回值
RangeError — 如果子清單中不存在索引位置,則擲回例外。
 
ArgumentError — 如果子系與父輩相同的話,則擲出例外。 如果呼叫者為所加入之子系的子系 (或孫系,依此類推), 也會擲回例外。

相關 API 元素


範例  ( 如何使用本範例 )

下列範例會建立 container 顯示物件容器,並將 circle1 顯示物件加入至此容器的顯示清單中。 接著,藉由呼叫 container.addChildAt(circle2, 0)circle2 物件加入索引位置 0 (下層),再將 circle1 物件移至索引位置 1:
import flash.display.Sprite;

var container:Sprite = new Sprite();

var circle1:Sprite = new Sprite();
var circle2:Sprite = new Sprite();

container.addChild(circle1);
container.addChildAt(circle2, 0);

trace(container.getChildAt(0) == circle2); // true
trace(container.getChildAt(1) == circle1); // true

areInaccessibleObjectsUnderPoint

()方法 
public function areInaccessibleObjectsUnderPoint(point:Point):Boolean

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

指出安全性限制是否會造成傳回的清單 (可用指定的 point 點呼叫 DisplayObjectContainer.getObjectsUnderPoint() 方法來取得) 省略任何顯示物件。 根據預設,來自某個網域的內容無法存取另一個網域的物件,除非您呼叫 Security.allowDomain() 方法才能這麼做。如需有關安全性的詳細資訊,請參閱「Flash Player 開發人員中心」主題:安全性

point 參數位於「舞台」的座標空間,與顯示物件容器的座標空間可能不同 (除非顯示物件容器位於「舞台」)。 您可以使用 globalToLocal()localToGlobal() 方法,在這些座標空間之間轉換座標點。

參數

point:Point — 可在其下層找尋的基準點。

傳回值
Boolean — 如果該點包含具有安全性限制的子顯示物件則為 true

相關 API 元素


範例  ( 如何使用本範例 )

下列程式碼會建立一個顯示物件容器,名為 container。 此程式碼的下一個區段會使用 Loader 物件,從遠端檔案伺服器載入名為 "test.jpg" 的 JPEG 檔案。 請注意,LoaderContext 物件的 checkPolicyFile 屬性 (此物件可用來當作 load() 方法中的參數) 會設為 false。 一旦載入檔案,程式碼會呼叫 loaded() 方法,而此方法會反過來呼叫 container.areInaccessibleObjectsUnderPoint(),由於所載入的內容是假設來自不可存取的網域,所以這麼做會傳回 true 值:
import flash.display.Sprite;
import flash.display.Loader;
import flash.system.LoaderContext;
import flash.net.URLRequest;
import flash.events.Event;
import flash.geom.Point;

var container:Sprite = new Sprite();

var urlReq:URLRequest = new URLRequest("http://localhost/RemoteFile.swf");
var ldr:Loader = new Loader();
var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = false;
ldr.load(urlReq, context);

ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound);

function loaded(event:Event):void {
    var pt:Point = new Point(1, 1);
    trace(container.areInaccessibleObjectsUnderPoint(pt)); // true
}

function urlNotFound(event:Event):void {
    trace("The URL was not found."); 
}
這個範例會假設此程式碼所產生的 SWF 檔會從與該 JPEG 檔不同的網域載入,而且該 JPEG 檔會複製 (1, 1) 這個點。

contains

()方法 
public function contains(child:DisplayObject):Boolean

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

判斷指定的顯示物件是否為 DisplayObjectContainer 實體的子系,或為實體本身。 搜尋範圍包含了整個顯示清單 (包括此 DisplayObjectContainer 實體)。 孫系,或曾孫系 (以此類推) 每個都會傳回 true

參數

child:DisplayObject — 要測試的子物件。

傳回值
Booleantrue,如果 child 物件為 DisplayObjectContainer 的子系或容器本身;否則為 false

範例  ( 如何使用本範例 )

下列範例會設定一些 Sprite 物件,並將其中一些物件加入至其它物件的子清單中。(Sprite 物件是一種顯示物件容器類型)。 藉由呼叫 contains() 方法來顯示不同物件之間的關係:
import flash.display.Sprite;

var sprite1:Sprite = new Sprite();
var sprite2:Sprite = new Sprite();
var sprite3:Sprite = new Sprite();
var sprite4:Sprite = new Sprite();

sprite1.addChild(sprite2);
sprite2.addChild(sprite3);

trace(sprite1.contains(sprite1)); // true
trace(sprite1.contains(sprite2)); // true
trace(sprite1.contains(sprite3)); // true
trace(sprite1.contains(sprite4)); // false

getChildAt

()方法 
public function getChildAt(index:int):DisplayObject

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

傳回存在於指定索引位置的子顯示物件實體。

參數

index:int — 子物件的索引位置。

傳回值
DisplayObject — 位於指定索引位置的子顯示物件。

擲回值
RangeError — 如果子清單中不存在索引,則擲出例外。
 
SecurityError — 這個子顯示物件屬於您無法存取的安全執行程序。 您可以讓子影片呼叫 Security.allowDomain() 來避免這個情況發生。

相關 API 元素


範例  ( 如何使用本範例 )

下列範例會建立一個名為 container 的顯示物件容器,並將三個顯示物件加入至 container 物件的子清單中。 getChildAt() 方法的呼叫會接著顯露出子物件的位置:
import flash.display.Sprite;

var container:Sprite = new Sprite();

var sprite1:Sprite = new Sprite();
var sprite2:Sprite = new Sprite();
var sprite3:Sprite = new Sprite();

container.addChild(sprite1);
container.addChild(sprite2);
container.addChildAt(sprite3, 0);

trace(container.getChildAt(0) == sprite3); // true
trace(container.getChildAt(1) == sprite1); // true
trace(container.getChildAt(2) == sprite2); // true

getChildByName

()方法 
public function getChildByName(name:String):DisplayObject

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

傳回具有指定名稱的子顯示物件。 如果有一個以上的子顯示物件擁有指定的名稱,則方法會傳回子清單中的第一個物件。

getChildAt() 方法的執行速度比 getChildByName() 方法來得快。 getChildAt() 方法可以存取快取陣列中的子系,而 getChildByName() 方法則是可以跨越連接清單來存取子系。

參數

name:String — 要傳回的子系名稱。

傳回值
DisplayObject — 具有指定名稱的子顯示物件。

擲回值
SecurityError — 這個子顯示物件屬於您無法存取的安全執行程序。 您可以讓子影片呼叫 Security.allowDomain() 方法來避免這個情況發生。

相關 API 元素


範例  ( 如何使用本範例 )

下列範例會建立一個名為 container 的顯示物件容器,並將兩個子顯示物件加入此容器中。 接著,此程式碼會呼叫 getChildByName()getChildIndex() 方法來傳回 container 物件的子系索引位置 (此物件具有 name "sprite1")。
import flash.display.Sprite;
import flash.display.DisplayObject;

var container:Sprite = new Sprite();

var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
var sprite2:Sprite = new Sprite();
sprite2.name = "sprite2";

container.addChild(sprite1);
container.addChild(sprite2);

var target:DisplayObject = container.getChildByName("sprite1"); 
trace(container.getChildIndex(target)); // 0

getChildIndex

()方法 
public function getChildIndex(child:DisplayObject):int

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

傳回 child DisplayObject 實體的索引位置。

參數

child:DisplayObject — 要辨識的 DisplayObject 實體。

傳回值
int — 要辨識的子顯示物件之索引位置。

擲回值
ArgumentError — 如果子參數不是此物件的子系,則擲出例外。

範例  ( 如何使用本範例 )

下列範例會建立一個名為 container 的顯示物件容器,並將兩個子顯示物件加入此容器中。 接著,此程式碼會呼叫 getChildByName()getChildIndex() 方法來傳回 container 物件的子系索引位置 (此物件具有 name "sprite1")。
import flash.display.Sprite;
import flash.display.DisplayObject;

var container:Sprite = new Sprite();

var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
var sprite2:Sprite = new Sprite();
sprite2.name = "sprite2";

container.addChild(sprite1);
container.addChild(sprite2);

var target:DisplayObject = container.getChildByName("sprite1"); 
trace(container.getChildIndex(target)); // 0

getObjectsUnderPoint

()方法 
public function getObjectsUnderPoint(point:Point):Array

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

傳回位於指定點底下,且屬於此 DisplayObjectContainer 實體之子系 (或孫系,以下類推) 的物件陣列。 任何因為安全理由而無法存取的子物件都會從傳回的陣列中省略掉。 若要判斷此安全性限制是否會影響到傳回的陣列,請呼叫 areInaccessibleObjectsUnderPoint() 方法。

point 參數位於「舞台」的座標空間,與顯示物件容器的座標空間可能不同 (除非顯示物件容器位於「舞台」)。 您可以使用 globalToLocal()localToGlobal() 方法,在這些座標空間之間轉換座標點。

參數

point:Point — 可在其下層找尋的基準點。

傳回值
Array — 位於指定點底下,且為此 DisplayObjectContainer 實體之子系 (或孫系,以下類推) 的物件陣列。

相關 API 元素


範例  ( 如何使用本範例 )

下列範例會建立一個名為 container 的顯示物件容器,並將兩個重疊的子顯示物件加入此容器中。 接著,程式碼會呼叫 getObjectsUnderPoint() 兩次 (第一次會使用只接觸到一個物件的點,然後再使用這兩個物件重疊處的點),接著傳回之陣列的 length 會顯示容器中每個點上的物件數量:
import flash.display.Sprite;
import flash.geom.Point;

var container:Sprite = new Sprite();

var square1:Sprite = new Sprite();
square1.graphics.beginFill(0xFFCC00);
square1.graphics.drawRect(0, 0, 40, 40);

var square2:Sprite = new Sprite();
square2.graphics.beginFill(0x00CCFF);
square2.graphics.drawRect(20, 0, 30, 40);

container.addChild(square1);
container.addChild(square2);

var pt:Point = new Point(10, 20);
var objects:Array = container.getObjectsUnderPoint(pt); 
trace(objects.length); // 1

pt = new Point(35, 20);
objects = container.getObjectsUnderPoint(pt);
trace(objects.length);  // 2

removeChild

()方法 
public function removeChild(child:DisplayObject):DisplayObject

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

將指定的 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。 移除的子系 parent 屬性是設為 null,而且如果子系沒有其它參照,物件就會被垃圾回收器移除。 任何位於 DisplayObjectContainer 子系上層的顯示物件,其索引位置會減掉 1。

垃圾回收器會重新分配未使用的記憶體空間。當變數或物件不再被參照使用,或是已經儲存至其它位置,則垃圾回收器會對記憶體空間進行清掃,掃除變數或物件之前佔用但已經沒有任何參照的記憶體空間。

參數

child:DisplayObject — 要移除的 DisplayObject 實體。

傳回值
DisplayObject — 您傳遞至 child 參數的 DisplayObject 實體。

擲回值
ArgumentError — 如果子參數不是此物件的子系,則擲出例外。

範例  ( 如何使用本範例 )

下列範例會建立一個名為 container 的顯示物件容器,並將兩個子顯示物件加入此容器中。 事件偵聽程式會加入至 container 物件,讓使用者在按一下容器中的子物件時,removeChild() 方法就會將按下的子物件從容器的子清單中移除:
 
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.events.MouseEvent;

var container:Sprite = new Sprite();
addChild(container);

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill(0xFFCC00);
circle1.graphics.drawCircle(40, 40, 40);

var circle2:Sprite = new Sprite();
circle2.graphics.beginFill(0x00CCFF);
circle2.graphics.drawCircle(120, 40, 40);

container.addChild(circle1);
container.addChild(circle2);

container.addEventListener(MouseEvent.CLICK, clicked);

function clicked(event:MouseEvent):void {
    container.removeChild(DisplayObject(event.target)); 
}

removeChildAt

()方法 
public function removeChildAt(index:int):DisplayObject

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

從 DisplayObjectContainer 子清單中的指定 index 位置移除子 DisplayObject。 移除的子系 parent 屬性是設為 null,而且如果子系沒有其它參照,物件就會被垃圾回收器移除。 任何位於 DisplayObjectContainer 子系上層的顯示物件,其索引位置會減掉 1。

垃圾回收器會重新分配未使用的記憶體空間。當變數或物件不再被參照使用,或是已經儲存至其它位置,則垃圾回收器會對記憶體空間進行清掃,掃除變數或物件之前佔用但已經沒有任何參照的記憶體空間。

參數

index:int — 要移除的 DisplayObject 子索引。

傳回值
DisplayObject — 已移除的 DisplayObject 實體。

擲回值
SecurityError — 這個子顯示物件屬於呼叫物件無法存取的安全執行程序。 您可以讓子影片呼叫 Security.allowDomain() 方法來避免這個情況發生。
 
RangeError — 如果子清單中不存在索引,則擲出例外。

範例  ( 如何使用本範例 )

下列範例會建立一個名為 container 的顯示物件容器,並將兩個子顯示物件加入此容器中。 此程式碼接著會在您呼叫 removeChildAt() 方法來移除位於較低索引位置 (0) 之子物件時顯示此容器,而清單中的其它任何子物件則會往下移動一個位置:
import flash.display.Sprite;

var container:Sprite = new Sprite();

var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
var sprite2:Sprite = new Sprite();
sprite2.name = "sprite2";

container.addChild(sprite1);
container.addChild(sprite2);

trace(container.numChildren) // 2
container.removeChildAt(0); 
trace(container.numChildren) // 1
trace(container.getChildAt(0).name); // sprite2

removeChildren

()方法 
public function removeChildren(beginIndex:int = 0, endIndex:int = 0x7fffffff):void

語言版本: ActionScript 3.0
執行階段版本: AIR 3.0, Flash Player 11

將所有 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。移除的子系之 parent 屬性是設定為 null,且如果不存在子系的其它參考,物件就會被垃圾回收器移除。

垃圾回收器會重新分配未使用的記憶體空間。當變數或物件不再被參照使用,或是已經儲存至其它位置,則垃圾回收器會對記憶體空間進行清掃,掃除變數或物件之前佔用但已經沒有任何參照的記憶體空間。

參數

beginIndex:int (default = 0) — 開始位置。小於 0 的值會擲回 RangeError
 
endIndex:int (default = 0x7fffffff) — 結束位置。小於 0 的值會擲回 RangeError


擲回值
RangeError — 如果子清單中不存在 beginIndexendIndex 位置,則擲出例外。

setChildIndex

()方法 
public function setChildIndex(child:DisplayObject, index:int):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

變更顯示物件容器中現有子系的位置。 這樣會影響子物件的圖層。 例如,下列範例說明三個加上 a、b 與 c 標籤的顯示物件,分別位於 0、1 與 2 的索引位置:

c 在 b 上面,b 在 a 上面

當您使用 setChildIndex() 方法並指定已遭佔用的索引位置時,變更的位置只會介於顯示物件之前的位置和新位置之間,其它所有位置將維持不變。如果將子系移至比本身目前索引還「低」的索引位置,則兩者之間所有子系的索引參考都將「遞增」1。如果將子系移至比本身目前索引還「高」的索引位置,則兩者之間所有子系的索引參考都將「遞減」1。例如,如果上一個範例中的顯示物件容器名為 container,則您可以呼叫下列程式碼來切換加上 a 與 b 標籤的顯示物件位置:

container.setChildIndex(container.getChildAt(1), 0);

這個程式碼會產生如下所示的物件排列:

c 在 a 上面,a 在 b 上面

參數

child:DisplayObject — 您要變更索引編號的 DisplayObject 子實體。
 
index:int — 產生的 child 顯示物件索引編號。


擲回值
RangeError — 如果子清單中不存在索引,則擲出例外。
 
ArgumentError — 如果子參數不是此物件的子系,則擲出例外。

相關 API 元素


範例  ( 如何使用本範例 )

下列範例會建立一個名為 container 的顯示物件容器,並將三個稍微重疊的子顯示物件加入此容器中。 當使用者按下這些物件中任何一個時,clicked() 方法會呼叫 setChildIndex() 方法,將按下的物件移動到 container 物件子清單中的最上層位置:
import flash.display.Sprite;
import flash.events.MouseEvent;

var container:Sprite = new Sprite();
addChild(container);

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill(0xFF0000);
circle1.graphics.drawCircle(40, 40, 40);
circle1.addEventListener(MouseEvent.CLICK, clicked);
 
var circle2:Sprite = new Sprite();
circle2.graphics.beginFill(0x00FF00);
circle2.graphics.drawCircle(100, 40, 40);
circle2.addEventListener(MouseEvent.CLICK, clicked);
 
var circle3:Sprite = new Sprite();
circle3.graphics.beginFill(0x0000FF);
circle3.graphics.drawCircle(70, 80, 40);
circle3.addEventListener(MouseEvent.CLICK, clicked);
 
container.addChild(circle1);
container.addChild(circle2);
container.addChild(circle3);
addChild(container);
 
function clicked(event:MouseEvent):void {
    var circle:Sprite = Sprite(event.target);
    var topPosition:uint = container.numChildren - 1;
    container.setChildIndex(circle, topPosition);
}

stopAllMovieClips

()方法 
public function stopAllMovieClips():void

語言版本: ActionScript 3.0
執行階段版本: AIR 3.8, Flash Player 11.8

遞迴停止執行所有 MovieClips 的時間軸根源於此物件。

子顯示物件所屬的安全執行程序若執行程式碼沒有存取權,就會遭到忽略。

注意:透過 NetStream 物件控制的串流媒體播放將不會停止。

swapChildren

()方法 
public function swapChildren(child1:DisplayObject, child2:DisplayObject):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

替換兩個指定子物件的 z 順序 (深度階層,由前至後順序)。 顯示物件容器中的所有其它子物件都會保留在相同的索引位置。

參數

child1:DisplayObject — 第一個子物件。
 
child2:DisplayObject — 第二個子物件。


擲回值
ArgumentError — 如果任何一個子參數都不是此物件的子系,則擲回例外。

範例  ( 如何使用本範例 )

下列範例會建立一個名為 container 的顯示物件容器,然後將兩個子顯示物件加入至該容器,再說明對 swapChildren() 方法的呼叫有何影響:
import flash.display.Sprite;

var container:Sprite = new Sprite();

var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
var sprite2:Sprite = new Sprite();
sprite2.name = "sprite2";

container.addChild(sprite1);
container.addChild(sprite2);

trace(container.getChildAt(0).name); // sprite1
trace(container.getChildAt(1).name); // sprite2

container.swapChildren(sprite1, sprite2);

trace(container.getChildAt(0).name); // sprite2
trace(container.getChildAt(1).name); // sprite1

swapChildrenAt

()方法 
public function swapChildrenAt(index1:int, index2:int):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

在子清單的兩個指定索引位置,替換子物件的 z 順序 (深度階層,由前至後順序)。顯示物件容器中的所有其它子物件都會保留在相同的索引位置。

參數

index1:int — 第一個子物件的索引位置。
 
index2:int — 第二個子物件的索引位置。


擲回值
RangeError — 如果子清單中不存在任何一個索引。

範例  ( 如何使用本範例 )

下列範例會建立一個名為 container 的顯示物件容器,然後將三個子顯示物件加入至該容器,再說明對 swapChildrenAt() 方法的呼叫要如何重新排列該顯示物件容器中的子清單順序:
import flash.display.Sprite;

var container:Sprite = new Sprite();

var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
var sprite2:Sprite = new Sprite();
sprite2.name = "sprite2";
var sprite3:Sprite = new Sprite();
sprite3.name = "sprite3";

container.addChild(sprite1);
container.addChild(sprite2);
container.addChild(sprite3);

trace(container.getChildAt(0).name); // sprite1
trace(container.getChildAt(1).name); // sprite2
trace(container.getChildAt(2).name); // sprite3

container.swapChildrenAt(0, 2);

trace(container.getChildAt(0).name); // sprite3
trace(container.getChildAt(1).name); // sprite2
trace(container.getChildAt(2).name); // sprite1
DisplayObjectContainerExample.as

下列範例會使用 DisplayObjectContainerExample 類別,連續建立五個橘色正方形。 您可以執行下列步驟來完成這項工作:
  1. 此建構函式會呼叫 configureAssets() 方法。
  2. configureAssets() 方法會建立 childlastChild Sprite 物件。
  3. for 迴圈會建立五個橘色正方形,並依次安置這些正方形。
  4. 每次建立 CustomSprite 物件時,它的建構函式就會呼叫 CustomSprite 物件的 draw() 方法,它會藉由呼叫 Graphics 類別的 beginFill()drawRect()endFill() 方法來建立一個 50 x 50 像素的方形。 addChild() 方法會將每一個正方形都加入至顯示清單中。
package {
    import flash.display.DisplayObject;
    import flash.display.Sprite;

    public class DisplayObjectContainerExample extends Sprite {
        private var gutter:uint     = 5;
        private var childCount:uint = 5;

        public function DisplayObjectContainerExample() {
            configureAssets();
        }

        private function configureAssets():void {
            var child:Sprite = new CustomSprite();
            var lastChild:Sprite = child;
            for (var i:uint = 1; i <= childCount; i++) {
                child = new CustomSprite();
                child.x = lastChild.x + lastChild.width + gutter;
                addChild(child);
                lastChild = child;
            }
        }
    }
}

import flash.display.Sprite;

class CustomSprite extends Sprite {
    private var size:uint = 50;
    private var bgColor:uint = 0xFFCC00;

    public function CustomSprite() {
        draw(size, size);
    }

    private function draw(w:uint, h:uint):void {
        graphics.beginFill(bgColor);
        graphics.drawRect(0, 0, w, h);
        graphics.endFill();
    }
}




[ X ]為什麼顯示英文?
「ActionScript 3.0 參考」的內容是以英文顯示

並非所有「ActionScript 3.0 參考」的內容都翻譯為所有語言。當語言元素未翻譯時,就會以英文顯示。例如,ga.controls.HelpBox 類別並沒有翻譯為任何語言。因此在參考的繁體中文版本中,ga.controls.HelpBox 類別就會以英文顯示。