javascriptでライブラリ

[5393]javascriptでライブラリ | 投稿者:あか | 投稿日:2010/12/04(Sat) 16:33:58
いつもお世話になってます。
OSX(10.4.11)、InDesignCS3で、
javascriptでライブラリに登録されたオブジェクトを配置して、
移動させたり、色変えたりしたいと思っています。
hoge.indlというライブラリに一つのオブジェクトがあったとして、
以下を実行すると、

var myLib = app.libraries.item("hoge.indl");
var myItem = myLib.assets[0].placeAsset(app.activeDocument)[0];
myItem.geometricBounds = [10,10,15,15];

何も選択していない状態だと、配置されたオブジェクトのgeometricBoundsが変更されますが、
何かを選択した状態だと、選択されたオブジェクトのgeometricBoundsが変更されます。

何かを選択していても、配置されたオブジェクトのgeometricBoundsを変更することは可能でしょうか?
» 1
[5395]Re: javascriptでライブラリ | 投稿者:あか | 投稿日:2010/12/04(Sat) 16:54:48
自己レスですが、

var mysel = app.activeDocument.selection[0];
var myLib = app.libraries.item("hoge.indl");
mysel.select(SelectionOptions.removeFrom);
var myItem = myLib.assets[0].placeAsset(app.activeDocument)[0];
myItem.geometricBounds = [10,10,15,15];
app.selection = mysel;

選択を外したらできました。
複数選択してたら...
» 2
[5396]Re: javascriptでライブラリ | 投稿者:(z-) | 投稿日:2010/12/04(Sat) 23:57:31
app.activeDocument.selection=null;

で、ヌルッと解除できますぞ
» 3
[5400]Re: javascriptでライブラリ | 投稿者:あか | 投稿日:2010/12/06(Mon) 08:26:41
(z-)さん、ありがとうございます。

いいですね。ヌルッ解除。
知らなかったです。

なんだか、配置したときは配置したオブジェクトか、
せめて配置されたものを返して欲しいんですが...
何のために選択してるものを返すのか...
よくわからんです。
» 4
[5401]Re: javascriptでライブラリ | 投稿者:お~まち | 投稿日:2010/12/06(Mon) 09:38:33
CS3とCS5(いずれもWin)で試してみました。
CS3では選択しているオブジェクトのgeometricBoundsが変更されます。
CS5では配置したオブジェクトのgeometricBoundsが変更されます。

ということでCS3のバグですね。CS4は手元にないのでわかりませんです。
» 5
[5402]Re: javascriptでライブラリ | 投稿者:mg | 投稿日:2010/12/06(Mon) 11:23:32
CSとCS4は
配置オブジェクトのgeometricBoundsが変更されます。

CS2とCS3は
選択しているオブジェクトのgeometricBoundsを返します。

環境はOSX 10.6.5で試しました。
» 6
[5404]Re: javascriptでライブラリ | 投稿者:あか | 投稿日:2010/12/06(Mon) 12:26:02
お~まちさん、mgさん検証ありがとうございます。

バージョンによってバラバラしてると、
将来バージョン変えた時に不安がいっぱいです。

今の所CS3でやってるんで、
とりあえずは選択解除で頑張ります。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)