Sprite

SpriteはDisplayObjectContainerです。MovieClipの基底クラスであり、タイムラインを持たない動的なオブジェクト管理に使用します。

継承関係

classDiagram
    DisplayObject <|-- InteractiveObject
    InteractiveObject <|-- DisplayObjectContainer
    DisplayObjectContainer <|-- Sprite
    Sprite <|-- MovieClip

    class Sprite {
        +buttonMode: Boolean
        +useHandCursor: Boolean
    }

プロパティ

Sprite固有のプロパティ

プロパティ読取専用デフォルト説明
isSpritebooleanYestrueSpriteの機能を所持しているかを返却
buttonModebooleanNofalseこのスプライトのボタンモードを指定します
useHandCursorbooleanNotruebuttonModeがtrueの場合にハンドカーソルを表示するかどうか
hitAreaSprite | nullNonullスプライトのヒット領域となる別のスプライトを指定します
soundTransformSoundTransform | nullNonullこのスプライト内のサウンドを制御します

DisplayObjectContainerから継承されるプロパティ

プロパティ読取専用デフォルト説明
isContainerEnabledbooleanYestrueコンテナの機能を所持しているかを返却
mouseChildrenbooleanNotrueオブジェクトの子がマウスまたはユーザー入力デバイスに対応しているかどうか
numChildrennumberYes-このオブジェクトの子の数を返します
maskDisplayObject | nullNonull表示オブジェクトをマスクします

InteractiveObjectから継承されるプロパティ

プロパティ読取専用デフォルト説明
isInteractivebooleanYestrueInteractiveObjectの機能を所持しているかを返却
mouseEnabledbooleanNotrueこのオブジェクトでマウスまたはその他のユーザー入力メッセージを受け取るかどうか

DisplayObjectから継承されるプロパティ

プロパティ読取専用デフォルト説明
instanceIdnumberYes-DisplayObjectのユニークなインスタンスID
namestringNo""名前を返却します。getChildByName()で使用されます
parentSprite | MovieClip | nullNonullこのDisplayObjectの親のDisplayObjectContainerを返却
xnumberNo0親DisplayObjectContainerのローカル座標を基準にしたx座標
ynumberNo0親DisplayObjectContainerのローカル座標を基準にしたy座標
widthnumberNo-表示オブジェクトの幅(ピクセル単位)
heightnumberNo-表示オブジェクトの高さ(ピクセル単位)
scaleXnumberNo1基準点から適用されるオブジェクトの水平スケール値
scaleYnumberNo1基準点から適用されるオブジェクトの垂直スケール値
rotationnumberNo0DisplayObjectインスタンスの元の位置からの回転角(度単位)
alphanumberNo1指定されたオブジェクトのアルファ透明度値(0.0〜1.0)
visiblebooleanNotrue表示オブジェクトが可視かどうか
blendModestringNo”normal”使用するブレンドモードを指定するBlendModeクラスの値
filtersarray | nullNonull表示オブジェクトに関連付けられた各フィルターオブジェクトの配列
matrixMatrixNo-表示オブジェクトのMatrixを返します
colorTransformColorTransformNo-表示オブジェクトのColorTransformを返します
concatenatedMatrixMatrixYes-この表示オブジェクトとすべての親オブジェクトの結合されたMatrix
scale9GridRectangle | nullNonull現在有効な拡大/縮小グリッド
loaderInfoLoaderInfo | nullYesnullこの表示オブジェクトが属するファイルの読み込み情報
rootMovieClip | Sprite | nullYesnullDisplayObjectのルートであるDisplayObjectContainer
mouseXnumberYes-対象のDisplayObjectの基準点からのx軸の位置(ピクセル)
mouseYnumberYes-対象のDisplayObjectの基準点からのy軸の位置(ピクセル)
dropTargetSprite | nullYesnullスプライトのドラッグ先またはドロップされた先の表示オブジェクト
isMaskbooleanNofalseマスクとしてDisplayObjectにセットされているかを示します

メソッド

Sprite固有のメソッド

メソッド戻り値説明
startDrag(lockCenter?: boolean, bounds?: Rectangle)void指定されたスプライトをユーザーがドラッグできるようにします
stopDrag()voidstartDrag()メソッドを終了します

DisplayObjectContainerから継承されるメソッド

メソッド戻り値説明
addChild(child: DisplayObject)DisplayObject子DisplayObjectインスタンスを追加します
addChildAt(child: DisplayObject, index: number)DisplayObject指定のインデックス位置に子DisplayObjectインスタンスを追加します
removeChild(child: DisplayObject)void指定のchild DisplayObjectインスタンスを削除します
removeChildAt(index: number)void指定のインデックス位置から子DisplayObjectを削除します
removeChildren(...indexes: number[])void配列で指定されたインデックスの子をコンテナから削除します
getChildAt(index: number)DisplayObject | null指定のインデックス位置にある子表示オブジェクトインスタンスを返します
getChildByName(name: string)DisplayObject | null指定された名前に一致する子表示オブジェクトを返します
getChildIndex(child: DisplayObject)number子DisplayObjectインスタンスのインデックス位置を返します
setChildIndex(child: DisplayObject, index: number)void表示オブジェクトコンテナの既存の子の位置を変更します
contains(child: DisplayObject)boolean指定されたDisplayObjectがインスタンスの子孫であるかどうか
swapChildren(child1: DisplayObject, child2: DisplayObject)void指定された2つの子オブジェクトのz順序を入れ替えます
swapChildrenAt(index1: number, index2: number)void指定されたインデックス位置の2つの子オブジェクトのz順序を入れ替えます

DisplayObjectから継承されるメソッド

メソッド戻り値説明
getBounds(targetDisplayObject?: DisplayObject)Rectangle指定したDisplayObjectの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します
globalToLocal(point: Point)Pointpointオブジェクトをステージ(グローバル)座標から表示オブジェクトの(ローカル)座標に変換します
localToGlobal(point: Point)Pointpointオブジェクトを表示オブジェクトの(ローカル)座標からステージ(グローバル)座標に変換します
hitTestObject(target: DisplayObject)booleanDisplayObjectの描画範囲を評価して、重複または交差するかどうかを調べます
hitTestPoint(x: number, y: number, shapeFlag?: boolean)boolean表示オブジェクトを評価して、x、yパラメーターで指定されたポイントと重複または交差するかどうかを調べます
remove()void親子関係を解除します
getLocalVariable(key: any)anyクラスのローカル変数空間から値を取得
setLocalVariable(key: any, value: any)voidクラスのローカル変数空間へ値を保存
hasLocalVariable(key: any)booleanクラスのローカル変数空間に値があるかどうかを判断します
deleteLocalVariable(key: any)voidクラスのローカル変数空間の値を削除
getGlobalVariable(key: any)anyグローバル変数空間から値を取得
setGlobalVariable(key: any, value: any)voidグローバル変数空間へ値を保存
hasGlobalVariable(key: any)booleanグローバル変数空間に値があるかどうかを判断します
deleteGlobalVariable(key: any)voidグローバル変数空間の値を削除
clearGlobalVariable()voidグローバル変数空間に値を全てクリアします

使用例

ボタンとして使用

const { Sprite, Shape } = next2d.display;
const { PointerEvent } = next2d.events;

const button = new Sprite();

// ボタンモードを有効化
button.buttonMode = true;
button.useHandCursor = true;

// 背景用のShapeを作成
const bg = new Shape();
bg.graphics.beginFill(0x3498db);
bg.graphics.drawRoundRect(0, 0, 120, 40, 8, 8);
bg.graphics.endFill();
button.addChild(bg);

// クリックイベント
button.addEventListener(PointerEvent.POINTER_DOWN, () => {
    console.log("ボタンがクリックされました");
});

stage.addChild(button);

マスクとして使用

const { Sprite, Shape } = next2d.display;

const container = new Sprite();

// コンテンツ用のShape
const content = new Shape();
content.graphics.beginFill(0xFF0000);
content.graphics.drawRect(0, 0, 200, 200);
content.graphics.endFill();
container.addChild(content);

// マスク用のShape
const maskShape = new Shape();
maskShape.graphics.beginFill(0xFFFFFF);
maskShape.graphics.drawCircle(100, 100, 50);
maskShape.graphics.endFill();

// マスクを適用
container.mask = maskShape;

stage.addChild(container);
stage.addChild(maskShape);

ドラッグ&ドロップ

const { Sprite, Shape } = next2d.display;
const { PointerEvent } = next2d.events;
const { Rectangle } = next2d.geom;

const draggable = new Sprite();

// 背景用のShapeを作成
const bg = new Shape();
bg.graphics.beginFill(0x3498db);
bg.graphics.drawRect(0, 0, 100, 100);
bg.graphics.endFill();
draggable.addChild(bg);

// ドラッグ開始
draggable.addEventListener(PointerEvent.POINTER_DOWN, () => {
    // ドラッグを開始(中心をロック、境界を指定)
    draggable.startDrag(true, new Rectangle(0, 0, 400, 300));
});

// ドラッグ終了
draggable.addEventListener(PointerEvent.POINTER_UP, () => {
    draggable.stopDrag();
});

stage.addChild(draggable);

子オブジェクトの管理

const { Sprite, Shape } = next2d.display;

const container = new Sprite();

// 複数のShapeを子として追加
for (let i = 0; i < 5; i++) {
    const shape = new Shape();
    shape.graphics.beginFill(0xFF0000 + i * 0x003300);
    shape.graphics.drawCircle(0, 0, 20);
    shape.graphics.endFill();
    shape.x = i * 50;
    shape.name = "circle" + i;
    container.addChild(shape);
}

// 名前で子オブジェクトを取得
const circle2 = container.getChildByName("circle2");

// 子の数を取得
console.log(container.numChildren); // 5

stage.addChild(container);

関連項目