< PageItemの移動 >

 

PageItemはmove関数を使って移動することができます。その際の移動先は、「移動先座標」もしくは「移動距離」のいずれかで指定します。

 

「移動先座標」で指定する場合は、第1引数に移動先の座標[x, y]を渡します。

//PageItemの移動(移動先座標)
var obj= app.activeDocument.selection[0]; //選択されているオブジェクト
obj.move([10, 10]); // [x,y]

 

「移動距離」で指定する場合は、第2引数に移動距離[x, y]を渡します。この場合、第1引数は無視されることになるのでundefinedを渡しておきます。

//PageItemの移動(移動距離)
var obj= app.activeDocument.selection[0]; //選択されているオブジェクト
obj.move(undefined, [10, 10]); // [x,y]

 

また、移動先はスプレッド内だけではなく、他のコンテナオブジェクト(ドキュメントやページ)を指定することができます。

この場合、第1引数に移動先のオブジェクトを渡します。なお、移動先での座標を指定することはできません(座標は常に[0, 0]になる)。

//PageItemの移動(他ページに移動)
var obj= app.activeDocument.selection[0]; //選択されているオブジェクト
var objPage= app.activeDocument.pages.add(); //新規ページ作成
obj.move(objPage); //オブジェクトを新規ページに移動

ちなみに、第2引数に座標を指定すれば移動先での座標を指定できそうですが、引数を「anyObject, [10, 10]」としても、PageItemが距離移動するだけで第1引数は無視されます(第2引数が優先される)。

 

 

< PageItemの複製 >

 

PageItemの複製はduplicate関数を使います。引数を指定せずに実行すると、元のオブジェクトと同じ位置に複製されます。

ほかの挙動はmove関数とほぼ同じですが、第1引数に移動先座標を渡しても期待したような動作になりません。複製しつつ移動させる場合、第2引数を使った「移動距離」でしか指定できません。>

なお、move関数と違い、ほかのコンテナオブジェクトに複製する場合、第2引数に移動距離を指定することができます。

//PageItemの複製(複製元と同座標)
var obj= app.activeDocument.selection[0]; //選択されているオブジェクト
obj.duplicate(); // [x,y]
//PageItemの複製(相対距離)
var obj= app.activeDocument.selection[0]; //選択されているオブジェクト
obj.duplicate(undefined, [10, 10]); // [x,y]
//PageItemの複製(他ページに複製)
var objPage= app.activeDocument.pages.add();
var obj= app.activeDocument.selection[0]; //選択されているオブジェクト
obj.duplicate(objPage); // [x,y]
//PageItemの複製(他ページに複製&移動距離)
var obj= app.activeDocument.selection[0]; //選択されているオブジェクト
var objPage= app.activeDocument.pages.add();
obj.duplicate(objPage, [10, 10]); // [x,y]

 

 

Joomla templates by a4joomla