奥行きの変更

マップ・オブジェクトには、奥行きの概念が存在します。モデル(PMapModel)のobjectListプロパティで得られるMapObjectオブジェクトの配列には、奥から手前に向かって、マップ・オブジェクトが入っています。最初に描画されるものが背面に、後で描画されるものが前面になります。この順序は、マップ・オブジェクトを追加した順序です。新しく追加したオブジェクトは一番手前に描画されます。

マップ・オブジェクトを最前面、または最背面に移動させることで、奥行き方向の順序を変更できます。PMapModel#moveObjectToFront()、PMapModel#moveObjectToBack()メソッド、最前面、最背面へ移動させることができます。

サンプル

オブジェクトを最前面へ移動するサンプルです。「オブジェクト」メニュー、「最前面へ移動」を追加します。選択したオブジェクトを、最前面へ移動させます。

function extendUI(event) {
    inkpod.ui.actions.addAction({
        id     : "SAMPLE_MOVE_TO_FRONT",
        text   : "最前面に移動",
        action : function(frame, event) {
            var model = frame.model;
            var objects = model.selectedObjects;
            if(objects.length == 0) {
                frame.alert("オブジェクトを選択してください");
                return;
            }
            
            model.moveObjectToFront(objects);
        }
    });
    
    inkpod.ui.menuBar.objectMenu.addMenuItem("SAMPLE_MOVE_TO_FRONT");
}

function init()
{
    inkpod.ui.addUIExtensionListener(extendUI);
}

function dispose()
{
}

plugin = {
    init : init,
    dispose : dispose
}

選択したオブジェクトを引数にして、PMapModel#moveObjectToFront()を呼び出すことで、オブジェクトを一番手前に移動させています。この部分を、PMapModel#moveObjectToBack() 変更すれば、オブジェクトを一番奥へ移動できます。

関連するクラス/インタフェース