[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:1640) Re: [InDesign CS3][scripting]Event scripting
ドキュメントが開かれたら、ガイドやグリッド類をぜんぶ表示するようにしようかなあ。。。と思って以下のように書いてみた。
おー、われながらいいアイデアだぞ。
JSだと処理をファンクションで書けるので、便利かもしれない。
ちなみに、ファンクション内でapp.activeDocumentは使えないくさい。使ってもいいんだろうけれど、なにかと間違いがおこるみたい。
あと、ExtendScript Toolkit2ってsaveするときに、ショートカット使うと、うまく認識しないで、「s」がタイプされることが頻繁にある。Mac OS版だけなのか?
#targetengine "session"
function main(){
var my_event_listener = app.eventListeners.add("afterOpen", function(my_event){
//var my_document = app.activeDocument;
//var my_document = app.documents[0];
var my_document = my_event.parent;
var my_view_preference = my_document.viewPreferences;
my_view_preference.showRulers = true;//ルーラーを表示
my_view_preference.showFrameEdges = true;//フレーム枠を表示
var my_guide_preference = my_document.guidePreferences;
my_guide_preference.guidesShown = true;//ガイドを表示
var my_grid_preference = my_document.cjkGridPreferences;
my_grid_preference.showAllFrameGrids = true;//フレームグリッドを表示
my_grid_preference.showCharacterCount = true;//文字数を表示
//my_document.layoutWindows[0].screenMode = 1936552047;//スクリーンを標準モードにする
var my_layout = my_document.layoutWindows[0];
alert (my_layout.toString());//デバッグ用ここではちゃんと[object layoutWindow]を返すんだけどなあ
//my_layout.screenMode = ScreenModeOptions.PREVIEW_OFF;//★「オブジェクトが無効です」エラー
my_layout.screenMode = 1936552047;//★
}, false);
alert (my_event_listener.eventType + "イベントを設定しました", "", true);
}
main();
が、エラーになるんでさ。
デバッグ用に用意したalert (my_layout.toString());ではちゃんと[object layoutWindow]を返してくれるみたいなんだけど。。。
★行でダメくさい。定数もデシマルもダメくさい。
「オブジェクトが無効です」エラー
event scriptじゃなくて、普通のスクリプトなら動くんだけどなあ。
イベントの伝達ってところがよくわかっていないんだろうなあ。
どなたかわかる人はいらっしゃいますでしょうか?