LDisplayObjectContainer Class
LDisplayObjectContainer クラスは、表示リストで表示オブジェクトコンテナとして機能するすべてのオブジェクトの基本クラスです。表示リストでは、ランタイムに表示されるすべてのオブジェクトを管理します。LDisplayObjectContainer クラスは、表示リスト内で表示オブジェクトを配置するために使用します。各 LDisplayObjectContainer オブジェクトは、オブジェクトの z 順序を編成するために独自の子リストを持っています。z 順序は、どのオブジェクトを前面、背面、その他に描画するかを決定する、前から後ろへの順序です。
LDisplayObjectContainer は抽象基本クラスであるため、LDisplayObjectContainer を直接呼び出すことはできません。
LDisplayObjectContainer クラスは、子オブジェクトを持つすべてのオブジェクトの抽象基本クラスです。これは直接インスタンス化することはできません。
Constructor
LDisplayObjectContainer
()
public
Item Index
Methods
Properties
Methods
addChild
-
child
この DisplayObjectContainer インスタンスに子 LDisplayObjectContainer インスタンスを追加します。子インスタンスは、この LDisplayObjectContainer インスタンスにある他のすべての子の前(上)に追加されます(特定のインデックス位置に子を追加する場合は、addChildAt() メソッドを使用します)。
既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。
Parameters:
-
child
LDisplayObjectこの LDisplayObjectContainer インスタンスの子として追加する LDisplayObject インスタンスです。
Returns:
child パラメーターで渡す LDisplayObject インスタンスです。
Example:
var bitmapdata = new LBitmapData("#FF0000",0,0,100,100);
var bitmap = new LBitmap(bitmapdata);
var layer = new LSprite();
addChild(layer);
layer.addChild(bitmap);
addChildAt
-
child
-
index
この DisplayObjectContainer インスタンスに子 LDisplayObject インスタンスを追加します。子インスタンスは、指定されたインデックス位置に追加されます。インデックス 0 は、この LDisplayObjectContainer オブジェクトの表示リストの背景または一番下を表します。
例えば、a、b、c というラベルの 3 個の表示オブジェクトをインデックス位置 0、2、1 にそれぞれ配置すると、以下のようになります。
既に異なる表示オブジェクトコンテナを親に持つ子オブジェクトを追加する場合は、もう一方の表示オブジェクトコンテナの子リストからそのオブジェクトが削除されます。
Parameters:
-
child
LDisplayObjectこの LDisplayObjectContainer インスタンスの子として追加する LDisplayObject インスタンスです。
-
index
Int子を追加するインデックス位置です。既にオブジェクトが置かれているインデックス位置を指定すると、その位置にあるオブジェクトとその上に位置するすべてのオブジェクトが、子リスト内で 1 つ上の位置に移動します。
Returns:
child パラメーターで渡す LDisplayObject インスタンスです。
Example:
var container = new LSprite();
var circle1 = new LSprite();
var circle2 = new LSprite();
container.addChild(circle1);
container.addChildAt(circle2, 0);
trace(container.getChildAt(0) == circle2); // true
trace(container.getChildAt(1) == circle1); // true
addEventListener
-
type
-
listener
イベントリスナーオブジェクトを LEventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。イベントリスナーは、特定のタイプのイベント、段階、および優先度に関する表示リスト内のすべてのノードに登録できます。
イベントリスナーが正常に登録された後に、addEventListener() をさらに呼び出して優先度を変更することはできません。リスナーの優先度を変更するには、最初に removeListener() を呼び出す必要があります。その後、同じリスナーを新しい優先度レベルで再度登録できます。
イベントリスナーが不要になった場合は、removeEventListener() を呼び出して、イベントリスナーを削除します。削除しない場合、メモリの問題が発生する可能性があります。
Parameters:
-
type
Stringイベントのタイプです。
-
listener
Functionイベントを処理するリスナー関数です。
callParent
-
functionName
-
arguments
親クラスの関数を呼び出す。
Parameters:
-
functionName
String函数名
-
arguments
Array固定値arguments
Example:
function funA(){
LExtends(this,LObject,[]);
}
funA.prototype.myName = function(){
return "AAA";
}
function funB(){
LExtends(this,funA,[]);
}
funB.prototype.myName = function(){
return "BBB";
}
function funC(){
LExtends(this,funA,[]);
}
funC.prototype.myName = function(){
return this.callParent("myName",arguments);
}
LInit(1000/50,"legend",800,150,main);
function main(){
LGlobal.setDebug(true);
var objB = new funB();
trace(objB.myName());//BBB
var objC = new funC();
trace(objC.myName());//AAA
}
dispatchEvent
-
event
イベントをイベントフローに送出します。イベントターゲットは LEventDispatcher オブジェクトです。これに対して dispatchEvent() メソッドが呼び出されます。
Parameters:
-
event
LEvent | Stringイベントフローに送出されるイベントオブジェクトです。イベントが再度送出されると、イベントのクローンが自動的に作成されます。イベントが送出された後にそのイベントの target プロパティは変更できないため、再送出処理のためにはイベントの新しいコピーを作成する必要があります。
Returns:
値が true の場合、イベントは正常に送出されました。 function MyEventObject(){ var self = this; LExtends(self,LSprite,[]); self.graphics.drawRect(1,"#000000",[0,0,100,100],true,"#000000"); self.graphics.drawRect(1,"#FF0000",[100,0,100,100],true,"#FF0000"); self.addEventListener(LMouseEvent.MOUSE_UP,self.onclick); self.addEventListener(MyEventObject.CLICK_LEFT,function(event){ trace("dispatchEvent"); }); self.addEventListener(MyEventObject.CLICK_RIGHT,function(event){ trace("dispatchEvent event.name = " + event.name); }); } MyEventObject.CLICK_LEFT = "click_left"; MyEventObject.CLICK_RIGHT = "click_right"; MyEventObject.prototype.onclick = function(event){ var self = event.clickTarget; if(event.selfX < 100){ self.dispatchEvent(MyEventObject.CLICK_LEFT); }else{ var event = new LEvent(MyEventObject.CLICK_RIGHT); event.name = "LEvent Test"; self.dispatchEvent(event); } }
getBounds
-
targetCoordinateSpace
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。
Parameters:
-
targetCoordinateSpace
LDisplayObject使用する座標系を定義する表示オブジェクトです。
Returns:
targetCoordinateSpace オブジェクトの座標系を基準とする、表示オブジェクトの領域を定義する矩形です。
getChildAt
-
index
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。
Parameters:
-
index
Int子オブジェクトのインデックス位置です。
Returns:
指定されたインデックス位置にある子表示オブジェクトです。
Example:
var container = new LSprite();
addChild(container);
var sprite1 = new LSprite();
var sprite2 = new LSprite();
var sprite3 = new LSprite();
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
-
name
指定された名前に一致する子表示オブジェクトを返します。指定された名前を持つ子表示オブジェクトが複数存在する場合、メソッドは子リストの最初のオブジェクトを返します。
getChildAt() メソッドは、getChildByName() メソッドよりも処理が高速です。getChildAt() メソッドはキャッシュ配列の子にアクセスしますが、getChildByName() メソッドでは子にアクセスするためにリンクされたリストを移動する必要があります。
Parameters:
-
name
String返される子の名前です。
Returns:
指定された名前を持つ子表示オブジェクトです。
Example:
var container = new LSprite();
var sprite1 = new LSprite();
sprite1.name = "sprite1";
var sprite2 = new LSprite();
sprite2.name = "sprite2";
container.addChild(sprite1);
container.addChild(sprite2);
var target = container.getChildByName("sprite1");
trace(container.getChildIndex(target)); // 0
getChildIndex
-
特定する
child LDisplayObject インスタンスのインデックス位置を返します
Parameters:
-
特定する
LDisplayObjectLDisplayObject インスタンスです。
Returns:
特定する子表示オブジェクトのインデックス位置です。
Example:
var container = new LSprite();
addChild(container);
var sprite1 = new LSprite();
sprite1.name = "sprite1";
var sprite2 = new LSprite();
sprite2.name = "sprite2";
container.addChild(sprite1);
container.addChild(sprite2);
trace(container.getChildIndex(sprite1)); // 0
getDataURL
()
Base64 Image
public
base64でエンコードされた画像の文字列を取得する。
Returns:
base64でエンコードされた画像の文字列。
hasEventListener
-
type
LEventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。これにより、LEventDispatcher オブジェクトがイベントタイプの処理をイベントフロー階層のどこで変更したかを判断できます。
Parameters:
-
type
Stringイベントのタイプです。
Returns:
指定したタイプのリスナーが登録されている場合は true、それ以外の場合は false です。
remove
()
public
オブジェクト自体は、親コンテナから除去される。
removeAllChild
()
LDisplayObjectContainer インスタンスの子リストから全部の child LDisplayObject インスタンスを削除します。
removeAllEventListener
()
public
LEventDispatcher オブジェクトから全部のリスナーを削除します。
removeChild
-
child
LDisplayObjectContainer インスタンスの子リストから指定の child LDisplayObject インスタンスを削除します。削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。LDisplayObjectContainer の子より上位にある表示オブジェクトのインデックス位置は 1 つ下がります。
Parameters:
-
child
LDisplayObject削除する LDisplayObject インスタンスです。
Returns:
child パラメーターで渡す LDisplayObject インスタンスです。
Example:
function main () {
var container = new LSprite();
addChild(container);
var circle1 = new LSprite();
circle1.graphics.drawRect(1,"#000000",[0,0,50,50]);
var circle2 = new LSprite();
circle2.graphics.drawRect(1,"#000000",[100,100,50,50]);
container.addChild(circle1);
container.addChild(circle2);
container.addEventListener(LMouseEvent.MOUSE_DOWN, clicked);
}
function clicked (event) {
event.currentTarget.removeChild(event.target);
}
removeChildAt
-
index
LDisplayObjectContainer の子リストの指定された index 位置から子 LDisplayObject を削除します。削除された子の parent プロパティは null に設定されます。その子に対する参照が存在しない場合、そのオブジェクトはガベージコレクションによって収集されます。LDisplayObjectContainer の子より上位にある表示オブジェクトのインデックス位置は 1 つ下がります。
Parameters:
-
index
Int削除する LDisplayObject の子インデックスです。
Returns:
削除された LDisplayObject インスタンスです。
Example:
var container = new LSprite();
addChild(container);
var sprite1 = new LSprite();
sprite1.name = "sprite1";
var sprite2 = new LSprite();
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
removeEventListener
-
type
-
listener
LEventDispatcher オブジェクトからリスナーを削除します。対応するリスナーが LEventDispatcher オブジェクトに登録されていない場合は、このメソッドを呼び出しても効果はありません。
Parameters:
-
type
Stringイベントのタイプです。
-
listener
Function削除するリスナーオブジェクトです。
setChildIndex
-
child
-
index
表示オブジェクトコンテナの既存の子の位置を変更します。これは、子オブジェクトのレイヤーに影響します。例えば、a、b、c というラベルの 3 個の表示オブジェクトをインデックス位置 0、1、2 にそれぞれ配置すると、以下のようになります。
setChildIndex() を使用し、既に占有されているインデックス位置を指定した場合、表示オブジェクトの前の位置と新しい位置の間にある位置だけが変化します。その他は変化しません。現在のインデックスよりも小さいインデックスに子を移動すると、その間のすべての子が、それぞれのインデックス参照について 1 増加します。現在のインデックスよりも大きいインデックスに子を移動すると、その間のすべての子が、それぞれのインデックス参照について 1 減少します。例えば、上記の例の表示オブジェクトコンテナの名前が container である場合、次に示すコードを呼び出すことによって、a および b というラベルが付けられた表示オブジェクトの位置を入れ替えることができます。
container.setChildIndex(container.getChildAt(1), 0);
このコードによって、次に示すようなオブジェクトの配置になります。
Parameters:
-
child
LDisplayObjectインデックス番号を変更する子 LDisplayObject インスタンスです。
-
index
Int表示オブジェクトの結果のインデックス番号です。
Returns:
child 表示オブジェクトの結果のインデックス番号です。
Example:
LInit(50, "legend", 800, 480, main);
var container;
function main () {
container = new LSprite();
addChild(container);
var circle1 = new LSprite();
circle1.graphics.drawRect(1,"#000000",[0,0,100,100],true,"#000000");
circle1.addEventListener(LMouseEvent.MOUSE_DOWN, clicked);
var circle2 = new LSprite();
circle2.graphics.drawRect(1,"#FF0000",[40,80,100,100],true,"#FF0000");
circle2.addEventListener(LMouseEvent.MOUSE_DOWN, clicked);
var circle3 = new LSprite();
circle3.graphics.drawRect(1,"#008800",[80,0,100,100],true,"#008800");
circle3.addEventListener(LMouseEvent.MOUSE_DOWN, clicked);
container.addChild(circle1);
container.addChild(circle2);
container.addChild(circle3);
}
function clicked (event) {
var circle = event.target;
var topPosition = container.numChildren - 1;
container.setChildIndex(circle, topPosition);
}
Properties
alpha
Float
public
指定されたオブジェクトのアルファ透明度値を示します。有効な値は 0(完全な透明)~ 1(完全な不透明)です。デフォルト値は 1 です。alpha が 0 に設定されている表示オブジェクトは、表示されない場合でも、アクティブです。
Default: 0
blendMode
String
public
使用するブレンドモードを指定する LBlendMode クラスの値です。内部的には、2 つの方法でビットマップを描画できます。ブレンドモードを有効にした場合、または外部クリッピングマスクを使用する場合には、ビットマップで塗りつぶされた四角形シェイプをベクターレンダーに追加することによってビットマップが描画されます。このプロパティを無効な値に設定しようとすると、ランタイムは値を LBlendMode.NORMAL に設定します。
Default: null
childList
Array
public
子表示オブジェクトのリスト
filters
Array
public
表示オブジェクトに現在関連付けられている各フィルターオブジェクトが格納されているインデックス付きの配列です。
Default: null
mask
LDisplayObject
public
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。ステージの拡大および縮小時にマスクが確実に機能するためには、表示リストのアクティブな部分に mask 表示オブジェクトが含まれている必要があります。mask オブジェクト自体は描画されません。マスクを除去するには mask を null に設定します。
Default: null
mouseChildren
Boolean
public
オブジェクトの子がマウスに対応しているかどうかを判断します。
Example:
LGlobal.setDebug(true);
var container1 = new LSprite();
container1.x = container1.y = 20;
var container2 = new LSprite();
container2.x = 20;
container2.y = 100;
container2.mouseChildren = false;
addChild(container1);
addChild(container2);
var button01 = new LButtonSample1("mouseChildren=true");
container1.addChild(button01);
button01.addEventListener(LMouseEvent.MOUSE_DOWN,function(e){
trace("button01 click");
});
var button02 = new LButtonSample1("mouseChildren=false");
container2.addChild(button02);
button02.addEventListener(LMouseEvent.MOUSE_DOWN,function(e){
trace("button02 click");
});
mouseEnabled
Boolean
public
このオブジェクトでマウスまたはその他のユーザー入力メッセージを受け取るかどうかを指定します。デフォルト値は true であり、これは表示リスト上の LInteractiveObject インスタンスがデフォルトでマウスイベントまたはその他のユーザー入力イベントを受け取ることを意味します。mouseEnabled を false に設定すると、インスタンスでは、マウスイベント(またはキーボードイベントなど、その他のユーザー入力イベント)を一切受け取りません。表示リスト上のこのインスタンスの子は影響を受けません。表示リスト上のオブジェクトのすべての子に関する mouseEnabled 動作を変更するには、LDisplayObjectContainer.mouseChildren を使用します。
Example:
LGlobal.setDebug(true);
var button01 = new LButtonSample1("mouseEnabled=true");
button01.x = button01.y = 20;
addChild(button01);
button01.addEventListener(LMouseEvent.MOUSE_DOWN,function(e){
trace("button01 click");
});
var button02 = new LButtonSample1("mouseEnabled=false");
button02.x = 20;
button02.y = 150;
button02.mouseEnabled = false;
addChild(button02);
button02.addEventListener(LMouseEvent.MOUSE_DOWN,function(e){
trace("button02 click");
});
numChildren
Int
public
このオブジェクトの子の数を返します。
Example:
var container1 = new LSprite();
var container2 = new LSprite();
var circle1 = new LSprite();
circle1.graphics.drawRect(1,"#000000",[0,0,50,50]);
var circle2 = new LSprite();
circle2.graphics.drawRect(1,"#000000",[100,100,50,50]);
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
objectIndex
Int
public
オブジェクトのID
rotate
Float
public
LDisplayObject インスタンスの元の位置からの回転角を度単位で示します。時計回りに回転させる場合は 0 ~ 180 の値を指定します。反時計回りに回転させる場合は 0 ~ -180 の値を指定します。この範囲を超える値は、360 を加算または減算して、範囲内に収まる値になるように調整されます。例えば、my_video.rotate = 450 というステートメントは my_video.rotate = 90 と同義です。
Default: 0
scaleX
Float
public
基準点から適用されるオブジェクトの水平スケール(パーセンテージ)を示します。 デフォルトの基準点は (0,0) です。1.0 は縮尺 100% と同等です。
Default: 1
scaleY
Float
public
オブジェクトの基準点から適用されるオブジェクトの垂直スケール(パーセンテージ)を示します。 デフォルトの基準点は (0,0) です。1.0 は縮尺 100% です。
Default: 1
visible
Boolean
public
表示オブジェクトが可視かどうかを示します。非可視の表示オブジェクトは無効になります。例えば、ある LInteractiveObject インスタンスが visible=false に設定されている場合、これをクリックすることはできません。
Default: true
x
Float
public
親 LDisplayObjectContainer のローカル座標を基準にした LDisplayObject インスタンスの x 座標を示します。変形されている LDisplayObjectContainer にオブジェクトが含まれる場合、そのオブジェクトの座標系は、それを囲む LDisplayObjectContainer のローカル座標系になります。したがって、反時計回りに 90 度回転した LDisplayObjectContainer の場合、その LDisplayObjectContainer の子は、反時計回りに 90 度回転した座標系を継承します。オブジェクトの座標は、基準点の位置を参照します。
Default: 0
y
Float
public
親 LDisplayObjectContainer のローカル座標を基準にした LDisplayObject インスタンスの y 座標を示します。変形されている LDisplayObjectContainer にオブジェクトが含まれる場合、そのオブジェクトの座標系は、それを囲む LDisplayObjectContainer のローカル座標系になります。したがって、反時計回りに 90 度回転した LDisplayObjectContainer の場合、その LDisplayObjectContainer の子は、反時計回りに 90 度回転した座標系を継承します。オブジェクトの座標は、基準点の位置を参照します。
Default: 0
Events
LEvent.ENTER_FRAME
[ブロードキャストイベント] 再生ヘッドが新しいフレームに入るときに送出されます。
LMouseEvent.DOUBLE_CLICK
ユーザーが LInteractiveObject をポインティングデバイスのメインボタンで 2 回続けてすばやくクリックすると送出されます。
LMouseEvent.MOUSE_DOWN
ユーザーが LInteractiveObject インスタンス上でポインティングデバイスのボタンを押したときに送出されます。
LMouseEvent.MOUSE_MOVE
LInteractiveObject の上で、ユーザーがポインティングデバイスを移動させたときに送出されます。
LMouseEvent.MOUSE_OUT
ユーザーが LInteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。
LMouseEvent.MOUSE_OVER
ユーザーが LInteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。
LMouseEvent.MOUSE_UP
ユーザーが LInteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。