パッケージflash.display
public class DisplayObjectContainer
継承DisplayObjectContainer Inheritance InteractiveObject Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object
SubclassesLoader, Sprite, Stage

DisplayObjectContainer クラスは、表示リストで表示オブジェクトコンテナとして機能するすべてのオブジェクトの基本クラスです。表示リストは、Flash Player に表示されるすべてのオブジェクトを管理します。DisplayObjectContainer クラスは、表示リスト内で表示オブジェクトを配置するために使用します。各 DisplayObjectContainer オブジェクトは、オブジェクトの z 順序を編成するために独自の子リストを持っています。z 順序は、どのオブジェクトを前面、背面、その他に描画するかを決定する、前から後ろへの順序です。

DisplayObject は抽象基本クラスであるため、DisplayObject を直接呼び出すことはできません。new DisplayObject() を呼び出すと ArgumentError 例外がスローされます。

DisplayObjectContainer クラスは、子オブジェクトを持つすべてのオブジェクトの抽象基本クラスです。これは直接インスタンス化することはできません。new DisplayObjectContainer() コンストラクタを呼び出すと、ArgumentError 例外がスローされます。

詳しくは、『ActionScript 3.0 のプログラミング』の「表示のプログラミング」の章を参照してください。

例の表示

関連項目

flash.display.DisplayObject
表示アーキテクチャについて
表示オブジェクトの操作


パブリックプロパティ
 プロパティ定義
 InheritedaccessibilityProperties : AccessibilityProperties
この表示オブジェクトの現在のアクセシビリティオプションです。
DisplayObject
 Inheritedalpha : Number
指定されたオブジェクトのアルファ透明度値を示します。
DisplayObject
 InheritedblendMode : String
使用するブレンドモードを指定する BlendMode クラスの値です。
DisplayObject
 InheritedcacheAsBitmap : Boolean
true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash Player にキャッシュされます。
DisplayObject
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 InheritedcontextMenu : ContextMenu
このオブジェクトに関連付けられたコンテキストメニューを指定します。
InteractiveObject
 InheriteddoubleClickEnabled : Boolean
オブジェクトが doubleClick イベントを受け取るかどうかを指定します。
InteractiveObject
 Inheritedfilters : Array
表示オブジェクトに現在関連付けられている各フィルタオブジェクトが格納されているインデックス付きの配列です。
DisplayObject
 InheritedfocusRect : Object
このオブジェクトがフォーカス矩形を表示するかどうかを指定します。
InteractiveObject
 Inheritedheight : Number
表示オブジェクトの高さを示します (ピクセル単位)。
DisplayObject
 InheritedloaderInfo : LoaderInfo
この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。
DisplayObject
 Inheritedmask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。
DisplayObject
  mouseChildren : Boolean
オブジェクトの子に対してマウスが有効かどうかを調べます。
DisplayObjectContainer
 InheritedmouseEnabled : Boolean
このオブジェクトがマウスメッセージを受け取るかどうかを指定します。
InteractiveObject
 InheritedmouseX : Number
マウス位置の x 座標を示します (ピクセル単位)。
DisplayObject
 InheritedmouseY : Number
マウス位置の y 座標を示します (ピクセル単位)。
DisplayObject
 Inheritedname : String
DisplayObject のインスタンス名を示します。
DisplayObject
  numChildren : int
[read-only] このオブジェクトの子の数を返します。
DisplayObjectContainer
 InheritedopaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。
DisplayObject
 Inheritedparent : DisplayObjectContainer
この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。
DisplayObject
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
 Inheritedroot : DisplayObject
ロードされた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。
DisplayObject
 Inheritedrotation : Number
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。
DisplayObject
 Inheritedscale9Grid : Rectangle
現在有効な拡大 / 縮小グリッドです。
DisplayObject
 InheritedscaleX : Number
基準点から適用されるオブジェクトの水平スケール (percentage) を示します。
DisplayObject
 InheritedscaleY : Number
オブジェクトの基準点から適用されるオブジェクトの垂直スケール (percentage) を示します。
DisplayObject
 InheritedscrollRect : Rectangle
表示オブジェクトのスクロール矩形の境界。
DisplayObject
 Inheritedstage : Stage
表示オブジェクトのステージ。
DisplayObject
  tabChildren : Boolean
オブジェクトの子に対してタブが有効かどうかを調べます。
DisplayObjectContainer
 InheritedtabEnabled : Boolean
このオブジェクトがタブ順序に含まれるかどうかを指定します。
InteractiveObject
 InheritedtabIndex : int
SWF ファイル内のオブジェクトのタブ順序を指定します。
InteractiveObject
  textSnapshot : TextSnapshot
[read-only] この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。
DisplayObjectContainer
 Inheritedtransform : Transform
表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。
DisplayObject
 Inheritedvisible : Boolean
表示オブジェクトが可視かどうかを示します。
DisplayObject
 Inheritedwidth : Number
表示オブジェクトの幅を示します (ピクセル単位)。
DisplayObject
 Inheritedx : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。
DisplayObject
 Inheritedy : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。
DisplayObject
パブリックメソッド
 メソッド定義
  DisplayObjectContainer()
new DisplayObjectContainer() コンストラクタを呼び出すと、ArgumentError 例外がスローされます。
DisplayObjectContainer
  addChild(child:DisplayObject):DisplayObject
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
DisplayObjectContainer
  addChildAt(child:DisplayObject, index:int):DisplayObject
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
DisplayObjectContainer
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  areInaccessibleObjectsUnderPoint(point:Point):Boolean
特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。
DisplayObjectContainer
  contains(child:DisplayObject):Boolean
指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。
DisplayObjectContainer
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
 InheritedgetBounds(targetCoordinateSpace:DisplayObject):Rectangle
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。
DisplayObject
  getChildAt(index:int):DisplayObject
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。
DisplayObjectContainer
  getChildByName(name:String):DisplayObject
指定された名前に一致する子表示オブジェクトを返します。
DisplayObjectContainer
  getChildIndex(child:DisplayObject):int
child DisplayObject インスタンスのインデックス位置を返します。
DisplayObjectContainer
  getObjectsUnderPoint(point:Point):Array
指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子または孫などであるオブジェクトの配列を返します。
DisplayObjectContainer
 InheritedgetRect(targetCoordinateSpace:DisplayObject):Rectangle
シェイプ上の線を除き、targetCoordinateSpace パラメータによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。
DisplayObject
 InheritedglobalToLocal(point:Point):Point
point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。
DisplayObject
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedhitTestObject(obj:DisplayObject):Boolean
表示オブジェクトを評価して、obj 表示オブジェクトと重複または交差するかどうかを調べます。
DisplayObject
 InheritedhitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。
DisplayObject
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedlocalToGlobal(point:Point):Point
point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。
DisplayObject
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
  removeChild(child:DisplayObject):DisplayObject
DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。
DisplayObjectContainer
  removeChildAt(index:int):DisplayObject
DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。
DisplayObjectContainer
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
  setChildIndex(child:DisplayObject, index:int):void
表示オブジェクトコンテナの既存の子の位置を変更します。
DisplayObjectContainer
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  swapChildren(child1:DisplayObject, child2:DisplayObject):void
指定された 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
DisplayObjectContainer
  swapChildrenAt(index1:int, index2:int):void
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
DisplayObjectContainer
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント一覧定義
 Inheritedactivate Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。DisplayObject
 Inheritedadded 表示オブジェクトが表示リストに追加されたときに送出されます。DisplayObject
 Inheritedclick ユーザーが同じ InteractiveObject 上でポインティングデバイスのメインボタンを押して離すと送出されます。InteractiveObject
 Inheriteddeactivate Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。DisplayObject
 InheriteddoubleClick オブジェクトの doubleClickEnabled フラグが true に設定されている場合には、ユーザーが同じ InteractiveObject 上でポインティングデバイスのメインボタンを 2 回続けてすばやく押して離すと送出されます。InteractiveObject
 InheritedenterFrame 再生ヘッドが新しいフレームに入るときに送出されます。DisplayObject
 InheritedfocusIn 表示オブジェクトがフォーカスを取得した後に送出されます。InteractiveObject
 InheritedfocusOut 表示オブジェクトがフォーカスを失った後に送出されます。InteractiveObject
 InheritedkeyDown ユーザーがキーを押したときに送出されます。InteractiveObject
 InheritedkeyFocusChange ユーザーがキーボード操作によってフォーカスを変更しようとすると送出されます。InteractiveObject
 InheritedkeyUp ユーザーがキーを離したときに送出されます。InteractiveObject
 InheritedmouseDown Flash Player ウィンドウの InteractiveObject インスタンスの上で、ユーザーがポインティングデバイスのボタンを押したときに送出されます。InteractiveObject
 InheritedmouseFocusChange ユーザーがポインティングデバイスでフォーカスを変更しようとすると送出されます。InteractiveObject
 InheritedmouseMove InteractiveObject の上で、ユーザーがポインティングデバイスを動かしたときに送出されます。InteractiveObject
 InheritedmouseOut ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。InteractiveObject
 InheritedmouseOver ユーザーが Flash Player ウィンドウの InteractiveObject インスタンスに、ポインティングデバイスを合わせたときに送出されます。InteractiveObject
 InheritedmouseUp ユーザーが Flash Player ウィンドウの InteractiveObject インスタンスの上でポインティングデバイスのボタンを離したときに送出されます。InteractiveObject
 InheritedmouseWheel Flash Player ウィンドウの InteractiveObject インスタンスの上で、マウスホイールを回転させたときに送出されます。InteractiveObject
 Inheritedremoved 表示オブジェクトが表示リストから削除されようとしているときに送出されます。DisplayObject
 Inheritedrender 表示リストが更新およびレンダリングされようとしているときに送出されます。DisplayObject
 InheritedrollOut ユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。InteractiveObject
 InheritedrollOver ユーザーが InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。InteractiveObject
 InheritedtabChildrenChange オブジェクトの tabChildren フラグの値が変更されたときに送出されます。InteractiveObject
 InheritedtabEnabledChange オブジェクトの tabEnabled フラグが変更されたときに送出されます。InteractiveObject
 InheritedtabIndexChange オブジェクトの tabIndex プロパティの値が変更されたときに送出されます。InteractiveObject
プロパティの詳細
mouseChildrenプロパティ
mouseChildren:Boolean  [read-write]

オブジェクトの子に対してマウスが有効かどうかを調べます。オブジェクトが使用可能なマウスの場合、マウスを使用して対話できます。デフォルト値は true です。

このプロパティは、SimpleButton クラスではなく、Sprite クラスのインスタンスを使用してボタンを作成するときに役立ちます。Sprite インスタンスを使用してボタンを作成する場合、他の Sprite インスタンスを追加するために addChild() メソッドを使用してボタンの修飾を選択できます。子として追加する Sprite インスタンスは、親インスタンスをターゲットオブジェクトとすることを想定するときに、マウスイベントのターゲットオブジェクトとなる場合があるため、マウスイベントについて予期しない動作を引き起こす可能性があります。親インスタンスが確実にマウスイベントのターゲットオブジェクトになるようにするには、親インスタンスの mouseChildren プロパティを false に設定します。

このプロパティを設定すると、イベントは送出されなくなります。インタラクティブな機能を作成するには、addEventListener() メソッドを使用する必要があります。

実装
    public function get mouseChildren():Boolean
    public function set mouseChildren(value:Boolean):void

関連項目



次に示す例では、 container という名前の、表示オブジェクトコンテナの 1 つである 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  [read-only]

このオブジェクトの子の数を返します。

実装
    public function get numChildren():int

関連項目



次に示す例では、container1 および container2 という名前の 2 つの Sprite オブジェクトを設定します。Sprite は表示オブジェクトコンテナの 1 つです。この例では、 addChild() メソッドを呼び出して、次のような表示階層を設定します。container1 は、 container2 の子であり、他の 2 つの表示オブジェクト circle1 および circle2 は、 container1 の子です。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  [read-write]

オブジェクトの子に対してタブが有効かどうかを調べます。オブジェクトの子に対してタブを有効または無効にします。

実装
    public function get tabChildren():Boolean
    public function set tabChildren(value:Boolean):void

Throws
IllegalOperationError — Stage オブジェクトのこのプロパティを呼び出すと、例外がスローされます。Stage オブジェクトはこのプロパティを実装しません。


次に示す例は、container1 表示オブジェクトコンテナを作成して、 2 つのタブ表示可能な表示オブジェクトである circle1circle2 を その子リストに追加します。
import flash.display.Sprite;

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

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

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

container.addChild(circle1);
container.addChild(circle2);
この例の結果を表示するには、ファイルをコンパイルして実行します。いずれかの円をクリックした後に、 Tab キーを押すと、フォーカスがある表示オブジェクトを切り替えることができます。フォーカスを持っている表示オブジェクトは、黄色でハイライト表示された矩形で示されます。

textSnapshotプロパティ 
textSnapshot:TextSnapshot  [read-only]

この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。

実装
    public function get textSnapshot():TextSnapshot

関連項目



次に示す例は、Flash オーサリング環境でのみ機能します。Flex では、静止テキストをファイルに追加する 方法はありません。この例のための Flash ファイルを準備するには、ムービーの最初のフレームに 静止テキストフィールドを追加します。その後、最初のフレームに次に示すスクリプトを挿入して、ファイルを実行します。出力は 追加した静止テキストとなります。
trace(this.textSnapshot.getText(0, this.textSnapshot.charCount));

コンストラクタの詳細
DisplayObjectContainer()コンストラクタ
public 関数 DisplayObjectContainer()

new DisplayObjectContainer() コンストラクタを呼び出すと、ArgumentError 例外がスローされます。しかし、次に示す DisplayObjectContainer のサブクラスについてはコンストラクタを呼び出すことができます。

メソッドの詳細
addChild()メソッド
public function addChild(child:DisplayObject):DisplayObject

この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。子インスタンスは、この DisplayObjectContainer インスタンスにある他のすべての子の前 (上) に追加されます。特定のインデックス位置に子を追加する場合は、addChildAt() メソッドを使用します。

既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。

パラメータ
child:DisplayObject — この DisplayObjectContainer インスタンスの子として追加する DisplayObject インスタンスです。

戻り値
DisplayObjectchild パラメータで渡す DisplayObject インスタンスです。

イベント
added:Event — 表示オブジェクトが表示リストに追加されたときに送出されます。

スロー
ArgumentError — 子が親と同じ場合にスローされます。

関連項目



次に示す例では、container1 および container2 という名前の 2 つの Sprite オブジェクトを設定します。Sprite は表示オブジェクトコンテナの 1 つです。この例では、 addChild() メソッドを呼び出して、次のような表示階層を設定します。container1 は、 container2 の子であり、他の 2 つの表示オブジェクト circle1 および circle2 は、 container1 の子です。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

この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。子インスタンスは、指定されたインデックス位置に追加されます。インデックス 0 は、この DisplayObjectContainer オブジェクトの表示リストの背景または一番下を表します。

たとえば、a、b、d というラベルの 3 個の表示オブジェクトをインデックス位置 0、2、1 にそれぞれ配置すると、以下のようになります。

既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。

パラメータ
child:DisplayObject — この DisplayObjectContainer インスタンスの子として追加する DisplayObject インスタンスです。
 
index:int — 子を追加するインデックス位置です。既にオブジェクトが置かれているインデックス位置を指定すると、その位置にあるオブジェクトとその上に位置するすべてのオブジェクトが、子リスト内で 1 つ上の位置に移動します。

戻り値
DisplayObjectchild パラメータで渡す DisplayObject インスタンスです。

イベント
added:Event — 表示オブジェクトが表示リストに追加されたときに送出されます。

スロー
RangeError — インデックス位置が子リストに存在しない場合にスローされます。
 
ArgumentError — 子が親と同じ場合にスローされます。

関連項目



次に示す例は、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

特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。デフォルトでは、Security.allowDomain() メソッドの呼び出しによって許可されていない限り、あるドメインのコンテンツから別のドメインのオブジェクトにアクセスすることはできません。

詳細については、次のトピックを参照してください。

point パラメータは、ステージの座標空間内にあり、表示オブジェクトコンテナの座標空間とは異なる場合があります。ただし、表示オブジェクトがステージである場合、座標空間は同じです。globalToLocal() メソッドおよび localToGlobal() メソッドを使用すると、これらの座標空間の間でポイントを変換できます。

パラメータ
point:Point — 注目するポイントです。

戻り値
Booleantrue は、そのポイントがセキュリティ上の制限のある子表示オブジェクトを含んでいることを示します。

関連項目



次に示すコードは 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

指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。検索には、この DisplayObjectContainer インスタンスの入った表示リスト全体が含まれます。孫、ひ孫などがそれぞれ true を返します。

パラメータ
child:DisplayObject — テストする子オブジェクトです。

戻り値
Booleanchild オブジェクトが DisplayObjectContainer の子であるか、コンテナ自体である場合、true となります。そうでない場合は、false となります。


次に示す例では、Sprite オブジェクトの数を設定し、いくつかを他の子リストに 追加します。Sprite オブジェクトは、表示オブジェクトコンテナの 1 つです。さまざまなオブジェクト間の関係は、 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

指定のインデックス位置にある子表示オブジェクトインスタンスを返します。

パラメータ
index:int — 子オブジェクトのインデックス位置です。

戻り値
DisplayObject — 指定されたインデックス位置にある子表示オブジェクトです。

スロー
RangeError — インデックスが子リストに存在しない場合にスローされます。
 
SecurityError — この子表示オブジェクトは、アクセス権が与えられていないサンドボックスに属しています。子ムービーで Security.allowDomain() を呼び出すことにより、この状況を回避できます。

関連項目



次に示す例は、container という名前の表示オブジェクトコンテナを作成してから、container オブジェクトの子リストに 3 つの表示オブジェクトを追加します。 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

指定された名前に一致する子表示オブジェクトを返します。指定された名前を持つ子表示オブジェクトが複数存在する場合、メソッドは子リストの最初のオブジェクトを返します。

getChildAt() メソッドは、getChildByName() メソッドよりも処理が高速です。getChildAt() メソッドはキャッシュ配列の子にアクセスしますが、getChildByName() メソッドでは子にアクセスするためにリンクされたリストを移動する必要があります。

パラメータ
name:String — 返される子の名前。

戻り値
DisplayObject — 指定された名前を持つ子表示オブジェクトです。

スロー
SecurityError — この子表示オブジェクトは、アクセス権が与えられていないサンドボックスに属しています。子ムービーで Security.allowDomain() メソッドを呼び出すことにより、この状況を回避できます。

関連項目



次に示す例は、 container という名前の表示オブジェクトコンテナを作成してから、2 つの子表示オブジェクトをコンテナに追加します。 その後、コードは 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

child DisplayObject インスタンスのインデックス位置を返します。

パラメータ
child:DisplayObject — 特定する DisplayObject インスタンスです。

戻り値
int — 特定する子表示オブジェクトのインデックス位置です。

スロー
ArgumentError — 子パラメータがこのオブジェクトの子でない場合にスローされます。


次に示す例は、 container という名前の表示オブジェクトコンテナを作成してから、2 つの子表示オブジェクトをコンテナに追加します。 その後、コードは 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

指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子または孫などであるオブジェクトの配列を返します。セキュリティ上の理由でアクセスできない子オブジェクトは返される配列から除かれます。このようなセキュリティ上の制限が、返される配列に与えている影響について判別するには、areInaccessibleObjectsUnderPoint() メソッドを呼び出します。

point パラメータは、ステージの座標空間内にあり、表示オブジェクトコンテナの座標空間とは異なる場合があります。ただし、表示オブジェクトがステージである場合、座標空間は同じです。globalToLocal() メソッドおよび localToGlobal() メソッドを使用すると、これらの座標空間の間でポイントを変換できます。

パラメータ
point:Point — 注目するポイントです。

戻り値
Array — 指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子または孫などであるオブジェクトの配列。

関連項目



次に示す例は、container という名前の表示オブジェクトコンテナを作成して、そのコンテナに重なり合う 2 つの子表示オブジェクトを追加します。その後、コードは getObjectsUnderPoint() を 2 回呼び出します。最初の呼び出しでは 1 つのオブジェクトだけに接するポイントを使用し、 次の呼び出しでは、オブジェクトが重なり合うポイントを使用します。返される配列の 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

DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。DisplayObjectContainer の子より上位にある表示オブジェクトのインデックス位置は 1 つ下がります。

ガベージコレクターとは、Flash Player が未使用のメモリースペースを再割り当てする処理のことです。変数またはオブジェクトがアクティブに参照されなくなり、任意の場所に保存されていない場合、ガベージコレクターによってメモリー内が探索され、それらに対する参照が存在しなければメモリースペースを占有している変数またはオブジェクトが一掃されます。

パラメータ
child:DisplayObject — 削除する DisplayObject インスタンスです。

戻り値
DisplayObjectchild パラメータで渡す DisplayObject インスタンスです。

スロー
ArgumentError — 子パラメータがこのオブジェクトの子でない場合にスローされます。


次に示す例は、 container という名前の表示オブジェクトコンテナを作成してから、2 つの子表示オブジェクトをコンテナに追加します。 イベントリスナーが 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

DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。DisplayObjectContainer の子より上位にある表示オブジェクトのインデックス位置は 1 つ下がります。

ガベージコレクターとは、Flash Player が未使用のメモリースペースを再割り当てする処理のことです。変数またはオブジェクトがアクティブに参照されなくなり、任意の場所に保存されていない場合、ガベージコレクターによってメモリー内が探索され、それらに対する参照が存在しなければメモリースペースを占有している変数またはオブジェクトが一掃されます。

パラメータ
index:int — 削除するDisplayObject の子インデックスです。

戻り値
DisplayObject — 削除された DisplayObject インスタンスです。

スロー
SecurityError — この子表示オブジェクトは、呼び出し元オブジェクトにアクセス権が与えられていないサンドボックスに属しています。子ムービーで Security.allowDomain() メソッドを呼び出すことにより、この状況を回避できます。
 
RangeError — インデックスが子リストに存在しない場合にスローされます。


次に示す例は、 container という名前の表示オブジェクトコンテナを作成してから、2 つの子表示オブジェクトをコンテナに追加します。 続くコードは、removeChildAt() メソッドを呼び出して 最下位のインデックス位置 (0) にある子を削除するときに、リスト内の他の子オブジェクトが 1 つ下がることを示しています。
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

setChildIndex()メソッド 
public function setChildIndex(child:DisplayObject, index:int):void

表示オブジェクトコンテナの既存の子の位置を変更します。これは、子オブジェクトのレイヤーに影響します。たとえば、a、b、c というラベルの 3 個の表示オブジェクトをインデックス位置 0、1、2 にそれぞれ配置すると、以下のようになります。

setChildIndex() メソッドを使用して、既に使用されているインデックス位置を指定する場合、その位置を使用している子と、子リストでその子より上位にあるすべてのオブジェクトは、リスト上の位置が 1 つ上がります。たとえば、上記の例の表示オブジェクトコンテナの名前が container である場合、次に示すコードを呼び出すことによって、a および b というラベルが付けられた表示オブジェクトの位置を入れ替えることができます。

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

このコードによって、次に示すようなオブジェクトの配置になります。

パラメータ
child:DisplayObject — インデックス番号を変更する子 DisplayObject インスタンスです。
 
index:intchild 表示オブジェクトの結果のインデックス番号です。

スロー
RangeError — インデックスが子リストに存在しない場合にスローされます。
 
ArgumentError — 子パラメータがこのオブジェクトの子でない場合にスローされます。

関連項目



次に示す例は、 container という名前の表示オブジェクトコンテナを作成して、少しずつ重なり合う 3 つの 子表示オブジェクトをコンテナに追加します。ユーザーがこれらのオブジェクトをクリックすると、 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);
}

swapChildren()メソッド 
public function swapChildren(child1:DisplayObject, child2:DisplayObject):void

指定された 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。表示オブジェクトコンテナの他のすべての子オブジェクトは、同じインデックス位置に残されます。

パラメータ
child1:DisplayObject — 先頭の子オブジェクトです。
 
child2:DisplayObject — 2 番目の子オブジェクトです。

スロー
ArgumentError — 子パラメータがいずれもこのオブジェクトの子でない場合にスローされます。


次に示す例は、 container という名前の表示オブジェクトコンテナを作成してから、そのコンテナに 2 つの子表示オブジェクトを追加します。 さらに、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

子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。表示オブジェクトコンテナの他のすべての子オブジェクトは、同じインデックス位置に残されます。

パラメータ
index1:int — 最初の子オブジェクトのインデックス位置です。
 
index2:int — 2 番目の子オブジェクトのインデックス位置です。

スロー
RangeError — インデックスが子リストに存在しません。


次に示す例は、 container という名前の表示オブジェクトコンテナを作成してから、そのコンテナに 3 つの子表示オブジェクトを追加します。 さらに、表示オブジェクトコンテナの子リストを再配置する 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 クラスを使用して、 オレンジ色の四角形を 5 個連続して作成します。これを行うには、以下の手順を実行します。
  1. コンストラクタは configureAssets() メソッドを呼び出します。
  2. configureAssets() メソッドは、childlastChild の Sprite オブジェクトを作成します。
  3. for ループは、オレンジ色の四角形を 5 個