もうひとつ追加しておきます。トップレベルオブジェクトに存在するActionReferenceから各種情報を取り出すには以下のようにActionDescripterを取り出し各種情報をgetKeyメソッドでTypeIDをキーとして取り出せばOKです。
var targetObject = "application"
var arf = new ActionReference ()
arf.putEnumerated (
stringIDToTypeID (targetObject),
stringIDToTypeID ("ordinal"),
stringIDToTypeID ("targetEnum"));
var ad = executeActionGet (arf);
str = "StringID : typeID : charID";
for (var i=0; i<ad.count; i++)
str += typeIDToStringID(ad.getKey(i)) + " : " + ad.getKey(i) + " : " + typeIDToCharID(ad.getKey(i)) + "\n";
と、各種IDが参照できるようになったところで…
Photoshopのスクリプティングの基本というのは各アクションに対してパラメータを定義して実行する形式です。これはIllustratorやInDesignといったアプリケーションと比較するとかなり異質な仕組みです。
例えばCMYK変換をメニューから実行するにしても以下のようにActionDescriptorに対してパラメータを設定した上でアクションを実行するという手順を行なっています。
var desc = new ActionDescriptor();
desc.putClass(stringIDToTypeID("to"), stringIDToTypeID("CMYKColorMode"));
executeAction(stringIDToTypeID("convertMode"), desc, DialogModes.NO);
逆に言うと、おおよそのメニュー項目もScriptListenerプラグインを利用すれば利用可能なものが用意できるということです。