| パッケージ | flash.display |
| クラス | public class DisplayObjectContainer |
| 継承 | DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
| サブクラス | Loader, Sprite, Stage, TextLine |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
DisplayObject は抽象基本クラスであるため、DisplayObject を直接呼び出すことはできません。new DisplayObject() を呼び出すと ArgumentError 例外がスローされます。
new DisplayObjectContainer() コンストラクタを呼び出すと、ArgumentError 例外がスローされます。
詳しくは、『ActionScript 3.0 のプログラミング』の「表示のプログラミング」の章を参照してください。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
![]() | accessibilityProperties : AccessibilityProperties この表示オブジェクトの現在のアクセシビリティオプションです。 | DisplayObject | |
![]() | alpha : Number 指定されたオブジェクトのアルファ透明度値を示します。 | DisplayObject | |
![]() | blendMode : String 使用するブレンドモードを指定する BlendMode クラスの値です。 | DisplayObject | |
![]() | blendShader : Shader [書き込み専用] 前景と背景のブレンドに使用するシェーダを設定します。 | DisplayObject | |
![]() | cacheAsBitmap : Boolean true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash Player または Adobe AIR にキャッシュされます。 | DisplayObject | |
![]() | constructor : Object 指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。 | Object | |
![]() | contextMenu : NativeMenu このオブジェクトに関連付けられたコンテキストメニューを指定します。 | InteractiveObject | |
![]() | doubleClickEnabled : Boolean オブジェクトが doubleClick イベントを受け取るかどうかを指定します。 | InteractiveObject | |
![]() | filters : Array 表示オブジェクトに現在関連付けられている各フィルタオブジェクトが格納されているインデックス付きの配列です。 | DisplayObject | |
![]() | focusRect : Object このオブジェクトがフォーカス矩形を表示するかどうかを指定します。 | InteractiveObject | |
![]() | height : Number 表示オブジェクトの高さを示します(ピクセル単位)。 | DisplayObject | |
![]() | loaderInfo : LoaderInfo [読み取り専用] この表示オブジェクトが属するファイルの読み込み情報を含む LoaderInfo オブジェクトを返します。 | DisplayObject | |
![]() | mask : DisplayObject 呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。 | DisplayObject | |
| mouseChildren : Boolean オブジェクトの子に対してマウスが有効かどうかを調べます。 | DisplayObjectContainer | ||
![]() | mouseEnabled : Boolean このオブジェクトがマウスメッセージを受け取るかどうかを指定します。 | InteractiveObject | |
![]() | mouseX : Number [読み取り専用] マウス位置の x 座標を示します(ピクセル単位)。 | DisplayObject | |
![]() | mouseY : Number [読み取り専用] マウス位置の y 座標を示します(ピクセル単位)。 | DisplayObject | |
![]() | name : String DisplayObject のインスタンス名を示します。 | DisplayObject | |
| numChildren : int [読み取り専用] このオブジェクトの子の数を返します。 | DisplayObjectContainer | ||
![]() | opaqueBackground : Object 表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。 | DisplayObject | |
![]() | parent : DisplayObjectContainer [読み取り専用] この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。 | DisplayObject | |
![]() | prototype : Object [静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
![]() | root : DisplayObject [読み取り専用] 読み込まれた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。 | DisplayObject | |
![]() | rotation : Number DisplayObject インスタンスの元の位置からの回転角を度単位で示します。 | DisplayObject | |
![]() | rotationX : Number DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの x 軸の回転角を度単位で示します。 | DisplayObject | |
![]() | rotationY : Number DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの y 軸の回転角を度単位で示します。 | DisplayObject | |
![]() | rotationZ : Number DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの z 軸の回転角を度単位で示します。 | DisplayObject | |
![]() | scale9Grid : Rectangle 現在有効な拡大 / 縮小グリッドです。 | DisplayObject | |
![]() | scaleX : Number 基準点から適用されるオブジェクトの水平スケール(パーセンテージ)を示します。 | DisplayObject | |
![]() | scaleY : Number オブジェクトの基準点から適用されるオブジェクトの垂直スケール(percentage)を示します。 | DisplayObject | |
![]() | scaleZ : Number オブジェクトの基準点から適用されるオブジェクトの奥行きスケール(パーセンテージ)を示します。 | DisplayObject | |
![]() | scrollRect : Rectangle 表示オブジェクトのスクロール矩形の境界です。 | DisplayObject | |
![]() | stage : Stage [読み取り専用] 表示オブジェクトのステージです。 | DisplayObject | |
| tabChildren : Boolean オブジェクトの子に対してタブが有効かどうかを調べます。 | DisplayObjectContainer | ||
![]() | tabEnabled : Boolean このオブジェクトがタブ順序に含まれるかどうかを指定します。 | InteractiveObject | |
![]() | tabIndex : int SWF ファイル内のオブジェクトのタブ順序を指定します。 | InteractiveObject | |
| textSnapshot : TextSnapshot [読み取り専用] この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。 | DisplayObjectContainer | ||
![]() | transform : Transform 表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。 | DisplayObject | |
![]() | visible : Boolean 表示オブジェクトが可視かどうかを示します。 | DisplayObject | |
![]() | width : Number 表示オブジェクトの幅を示します(ピクセル単位)。 | DisplayObject | |
![]() | x : Number 親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。 | DisplayObject | |
![]() | y : Number 親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。 | DisplayObject | |
![]() | z : Number 3D 親コンテナを基準にした、DisplayObject インスタンスの z 軸に沿った z 座標位置を示します。 | DisplayObject | |
| メソッド | 定義元 | ||
|---|---|---|---|
新しい DisplayObjectContainer() コンストラクタを呼び出すと、ArgumentError 例外がスローされます。 | DisplayObjectContainer | ||
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。 | DisplayObjectContainer | ||
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。 | DisplayObjectContainer | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | |
特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。 | DisplayObjectContainer | ||
指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。 | DisplayObjectContainer | ||
![]() | イベントをイベントフローに送出します。 | EventDispatcher | |
![]() | targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。 | DisplayObject | |
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。 | DisplayObjectContainer | ||
指定された名前に一致する子表示オブジェクトを返します。 | DisplayObjectContainer | ||
子 DisplayObject インスタンスのインデックス位置を返します。 | DisplayObjectContainer | ||
指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子(または孫など)であるオブジェクトの配列を返します。 | DisplayObjectContainer | ||
![]() | シェイプ上の線を除き、targetCoordinateSpace パラメータによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。 | DisplayObject | |
![]() | point オブジェクトをステージ(グローバル)座標から表示オブジェクトの(ローカル)座標に変換します。 | DisplayObject | |
![]() | ステージ(グローバル)座標の 2 次元のポイントを 3 次元の表示オブジェクトの(ローカル)座標に変換します。 | DisplayObject | |
![]() | EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | |
![]() | オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() | 表示オブジェクトの境界ボックスを評価して、obj 表示オブジェクトの境界ボックスと重複または交差するかどうかを調べます。 | DisplayObject | |
![]() | 表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。 | DisplayObject | |
![]() | Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() | 3 次元の表示オブジェクトの(ローカル)座標の 3 次元のポイントをステージ(グローバル)座標の 2 次元のポイントに変換します。 | DisplayObject | |
![]() | point オブジェクトを表示オブジェクトの(ローカル)座標からステージ(グローバル)座標に変換します。 | DisplayObject | |
![]() | 指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。 | DisplayObjectContainer | ||
DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。 | DisplayObjectContainer | ||
![]() | EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | |
表示オブジェクトコンテナの既存の子の位置を変更します。 | DisplayObjectContainer | ||
![]() | ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
指定された 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。 | DisplayObjectContainer | ||
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。 | DisplayObjectContainer | ||
![]() | 指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() | 指定されたオブジェクトのプリミティブな値を返します。 | Object | |
![]() | 指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher | |
| mouseChildren | プロパティ |
mouseChildren:Boolean [読み書き可能] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
オブジェクトの子に対してマウスが有効かどうかを調べます。オブジェクトが使用可能なマウスの場合、マウスを使用して対話できます。デフォルト値は true です。
このプロパティは、SimpleButton クラスではなく、Sprite クラスのインスタンスを使用してボタンを作成するときに役立ちます。Sprite インスタンスを使用してボタンを作成する場合、他の Sprite インスタンスを追加するために addChild() メソッドを使用してボタンの修飾を選択できます。子として追加する Sprite インスタンスは、親インスタンスをターゲットオブジェクトとすることを想定するときに、マウスイベントのターゲットオブジェクトとなる場合があるため、マウスイベントについて予期しない動作を引き起こす可能性があります。親インスタンスが確実にマウスイベントのターゲットオブジェクトになるようにするには、親インスタンスの mouseChildren プロパティを false に設定します。
このプロパティを設定しても、イベントは送出されません。インタラクティブな機能を作成するには、addEventListener() メソッドを使用する必要があります。
public function get mouseChildren():Boolean public function set mouseChildren(value:Boolean):void関連項目
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 |
このオブジェクトの子の数を返します。
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 [読み書き可能] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
オブジェクトの子に対してタブが有効かどうかを調べます。オブジェクトの子に対してタブを有効または無効にします。デフォルト値は true です。
public function get tabChildren():Boolean public function set tabChildren(value:Boolean):voidIllegalOperationError — Stage オブジェクトのこのプロパティを呼び出すと、例外がスローされます。Stage オブジェクトはこのプロパティを実装しません。 |
container1 表示オブジェクトコンテナを作成し、2 つの表示オブジェクト circle1 と circle2 をその子リストに追加します。 例では、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);
| textSnapshot | プロパティ |
textSnapshot:TextSnapshot [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。
public function get textSnapshot():TextSnapshot関連項目
trace(this.textSnapshot.getText(0, this.textSnapshot.charCount));
| DisplayObjectContainer | () | コンストラクタ |
public function DisplayObjectContainer()| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
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 |
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。子インスタンスは、この DisplayObjectContainer インスタンスにある他のすべての子の前(上)に追加されます(特定のインデックス位置に子を追加する場合は、addChildAt() メソッドを使用します)。
既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。
パラメータ
child:DisplayObject — この DisplayObjectContainer インスタンスの子として追加する DisplayObject インスタンスです。 |
DisplayObject —
child パラメータで渡す DisplayObject インスタンスです。
|
added: — 表示オブジェクトが表示リストに追加されたときに送出されます。 |
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| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。子インスタンスは、指定されたインデックス位置に追加されます。インデックス 0 は、この DisplayObjectContainer オブジェクトの表示リストの背景または一番下を表します。
例えば、a、b、c というラベルの 3 個の表示オブジェクトをインデックス位置 0、2、1 にそれぞれ配置すると、以下のようになります。
既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。
パラメータ
child:DisplayObject — この DisplayObjectContainer インスタンスの子として追加する DisplayObject インスタンスです。 | |
index:int — 子を追加するインデックス位置です。既にオブジェクトが置かれているインデックス位置を指定すると、その位置にあるオブジェクトとその上に位置するすべてのオブジェクトが、子リスト内で 1 つ上の位置に移動します。 |
DisplayObject —
child パラメータで渡す DisplayObject インスタンスです。
|
added: — 表示オブジェクトが表示リストに追加されたときに送出されます。 |
RangeError — インデックス位置が子リストに存在しない場合にスローされます。 | |
ArgumentError — 子が親と同じ場合にスローされます。呼び出し元が、追加されている子の子(または孫など)の場合もスローされます。 |
関連項目
container 表示オブジェクトコンテナを作成し、表示オブジェクト circle1 をその表示リストに追加します。次に container.addChildAt(circle2, 0) を呼び出します。これは、circle2 オブジェクトをインデックス位置ゼロ(黒)に追加し、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 |
特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。デフォルトでは、Security.allowDomain() メソッドの呼び出しによって許可されていない限り、あるドメインのコンテンツから別のドメインのオブジェクトにアクセスすることはできません。
詳しくは、次のトピックを参照してください。
point パラメータは、ステージの座標空間内にあり、表示オブジェクトコンテナの座標空間とは異なる場合があります。ただし、表示オブジェクトがステージである場合、座標空間は同じです。globalToLocal() メソッドおよび localToGlobal() メソッドを使用すると、これらの座標空間の間でポイントを変換できます。
パラメータ
point:Point — 注目するポイントです。 |
Boolean —
true は、そのポイントがセキュリティ上の制限のある子表示オブジェクトを含んでいることを示します。
|
関連項目
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.");
}| contains | () | メソッド |
public function contains(child:DisplayObject):Boolean| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。検索には、この DisplayObjectContainer インスタンスの入った表示リスト全体が含まれます。孫、ひ孫などがそれぞれ true を返します。
パラメータ
child:DisplayObject — テストする子オブジェクトです。 |
Boolean —
true となります(child オブジェクトが DisplayObjectContainer の子であるか、コンテナ自体である場合)。そうでない場合は、false となります。
|
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 |
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。
パラメータ
index:int — 子オブジェクトのインデックス位置です。 |
DisplayObject — 指定されたインデックス位置にある子表示オブジェクトです。 |
RangeError — インデックスが子リストに存在しない場合にスローされます。 | |
SecurityError —
この子表示オブジェクトは、アクセス権が与えられていない Sandbox に属しています。子ムービーで Security.allowDomain() を呼び出すことにより、この状況を回避できます。
|
関連項目
container という名前の表示オブジェクトコンテナを作成し、次に 3 つの表示オブジェクトを 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 |
指定された名前に一致する子表示オブジェクトを返します。指定された名前を持つ子表示オブジェクトが複数存在する場合、メソッドは子リストの最初のオブジェクトを返します。
getChildAt() メソッドは、getChildByName() メソッドよりも処理が高速です。getChildAt() メソッドはキャッシュ配列の子にアクセスしますが、getChildByName() メソッドでは子にアクセスするためにリンクされたリストを移動する必要があります。
パラメータ
name:String — 返される子の名前です。 |
DisplayObject — 指定された名前を持つ子表示オブジェクトです。 |
SecurityError —
この子表示オブジェクトは、アクセス権が与えられていない Sandbox に属しています。子ムービーで 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| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
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| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子(または孫など)であるオブジェクトの配列を返します。セキュリティ上の理由でアクセスできない子オブジェクトは返される配列から除かれます。このようなセキュリティ上の制限が、返される配列に与えている影響について判別するには、areInaccessibleObjectsUnderPoint() メソッドを呼び出します。
point パラメータは、ステージの座標空間内にあり、表示オブジェクトコンテナの座標空間とは異なる場合があります。ただし、表示オブジェクトがステージである場合、座標空間は同じです。globalToLocal() メソッドおよび localToGlobal() メソッドを使用すると、これらの座標空間の間でポイントを変換できます。
パラメータ
point:Point — 注目するポイントです。 |
Array — 指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子または孫などであるオブジェクトの配列です。 |
関連項目
container という名前の表示オブジェクトコンテナを作成し、次に重なり合う 2 つの子表示オブジェクトをコンテナに追加します。さらにコードは getObjectsUnderPoint() を 2 回(最初は 1 つのオブジェクトのみに接するポイントを使用して、次にオブジェクトが重なり合うポイントを使用して)呼び出し、返された Array の 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 |
DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。DisplayObjectContainer の子より上位にある表示オブジェクトのインデックス位置は 1 つ下がります。
ガベージコレクターは、未使用のメモリスペースの再割り当てを行います。 変数またはオブジェクトがアクティブに参照されなくなり、任意の場所に保存されていない場合、ガベージコレクターによってメモリ内が探索され、それらに対する参照が存在しなければメモリスペースを占有している変数またはオブジェクトが一掃されます。
パラメータ
child:DisplayObject — 削除する DisplayObject インスタンスです。 |
DisplayObject —
child パラメータで渡す 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| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。DisplayObjectContainer の子より上位にある表示オブジェクトのインデックス位置は 1 つ下がります。
ガベージコレクターは、未使用のメモリスペースの再割り当てを行います。 変数またはオブジェクトがアクティブに参照されなくなり、任意の場所に保存されていない場合、ガベージコレクターによってメモリ内が探索され、それらに対する参照が存在しなければメモリスペースを占有している変数またはオブジェクトが一掃されます。
パラメータ
index:int — 削除する DisplayObject の子インデックスです。 |
DisplayObject — 削除された DisplayObject インスタンスです。 |
SecurityError —
この子表示オブジェクトは、呼び出し元オブジェクトにアクセス権が与えられていない Sandbox に属しています。子ムービーで 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| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
表示オブジェクトコンテナの既存の子の位置を変更します。これは、子オブジェクトのレイヤーに影響します。例えば、a、b、c というラベルの 3 個の表示オブジェクトをインデックス位置 0、1、2 にそれぞれ配置すると、以下のようになります。
setChildIndex() を使用し、既に占有されているインデックス位置を指定した場合、表示オブジェクトの前の位置と新しい位置の間にある位置だけが変化します。その他は変化しません。現在のインデックスよりも小さいインデックスに子を移動すると、その間のすべての子が、それぞれのインデックス参照について 1 増加します。現在のインデックスよりも大きいインデックスに子を移動すると、その間のすべての子が、それぞれのインデックス参照について 1 減少します。例えば、上記の例の表示オブジェクトコンテナの名前が container である場合、次に示すコードを呼び出すことによって、a および b というラベルが付けられた表示オブジェクトの位置を入れ替えることができます。
container.setChildIndex(container.getChildAt(1), 0);
このコードによって、次に示すようなオブジェクトの配置になります。
パラメータ
child:DisplayObject — インデックス番号を変更する子 DisplayObject インスタンスです。 | |
index:int —
child 表示オブジェクトの結果のインデックス番号です。
|
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| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定された 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| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。表示オブジェクトコンテナの他のすべての子オブジェクトは、同じインデックス位置に残されます。
パラメータ
index1:int — 最初の子オブジェクトのインデックス位置です。 | |
index2:int — 2 番目の子オブジェクトのインデックス位置です。 |
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 を使用して、5 つのオレンジ色の四角形を連続して作成します。これを行うには、以下の手順を実行します。
configureAssets() メソッドを呼び出します。
configureAssets() メソッドは、child および lastChild Sprite オブジェクトを作成します。
for ループは、オレンジ色の四角形を 5 個作成し、それらを 1 つずつ配置します。
draw() メソッド(CustomSprite オブジェクトのメソッド)を呼び出します。これにより、50 x 50 ピクセルの四角形が、Graphics クラスの beginFill() メソッド、drawRect() メソッドおよび endFill() メソッドを呼び出すことで作成されます。 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();
}
}