[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じゃなくて、普通のスクリプトなら動くんだけどなあ。
イベントの伝達ってところがよくわかっていないんだろうなあ。
どなたかわかる人はいらっしゃいますでしょうか?