javascriptでのundo制御

[2509]javascriptでのundo制御 | 投稿者:amiza_ret | 投稿日:2009/03/02(Mon) 14:56:26
環境:WindowsXP InDesignCS4 javascript

いつもお世話になっています。
javascriptでUndoの回数の制御が分かりません。

アドビさんのユーザーフォーラムでも同様の質問があったのですが、それを見ても分かりませんでした。
色々サイトを探したのですが、分かりません。

app.doScript(myJavaScript, ScriptLanguage.javascript, myParameters,
UndoModes.fastEntireScript,"Script Action");
indesigncs4_scriptingguide_js_jp.pdf より>
で、制御が出来るらしいのですが、理解出来ませんでした…。

(完全なスクリプトについては、DoScriptScriptArgs を参照してください)。
とScriptingGuideに書いてありますが、「DoScriptScriptArgs」がどこにあるのやら…?
チュートリアルガイドがどこかにあって、そこに記載されているようなんですが、所在も分かりませんでした(再度、CS4のDVDを見てもありませんでした)

別にjavascriptでなく、環境設定等でUndoの回数を変更出来るのなら、それでも構わないと思ったのですが、それすら分かりませんでした。

どうかよろしくお願いいたします。
» 1
[2511]Re: javascriptでのundo制御 | 投稿者:せうぞー | 投稿日:2009/03/02(Mon) 15:37:51
このUndoModesパラメータは、アプリケーションのUndoの回数を変更するものではないと思います。
doScriptの引数で、渡されたスクリプトの実行に関して、Undo記録をするかしないか、ひとつだけするかなどの制御をするためのものです。
極端な繰り返しの中で、ドキュメントを変更するような時にパフォーマンスの低下を防ぐものだと思います。
アプリケーションクラスのプロパティとして設定できれば、使い勝手もいいでしょうが、このためだけにスクリプトを引数渡しするのは、ちょっとめんどうかなぁ、と感じています。
まあ、ボトルネックになるのは確かなので、有用な逃げ道だとは思いますが。
» 2
[2512]Re: javascriptでのundo制御 | 投稿者:amiza_ret | 投稿日:2009/03/02(Mon) 19:36:58
せうぞーさん、いつもお答え下さり、ありがとうございます。

とりあえず、動作するようになりました。
おっしゃる通りちょっと面倒な気もしますが、作業時間が短縮出来ればと思い、使用してみようと思っています。
先のmyJavaScriptには、JavaScriptファイル名を。
myParametersには、New Arrayとしました。

UndoModesが、
Auto_Undo = 1699963221
Entire_Script = 1699963733
Fast_Entire_Script = 1699964501
とあるのは分かりました。たぶん、Fast_Entire_Scriptが記録なしと思いますので、これで時間を測ってみたいと思います。
» 3
[2513]Re: javascriptでのundo制御 | 投稿者:せうぞー | 投稿日:2009/03/02(Mon) 22:44:22
こちらでもテストしてみました。
1500文字と7500文字を1文字づつ色を変えるテストです。
そのテスト結果です。
ノーマル:1500文字/2488ms:7500文字/19512ms
AUTO_UNDO:1500文字/2771ms:7500文字/21309ms
ENTIRE_SCRIPT:1500文字/2628ms:7500文字/21635ms
FAST_ENTIRE_SCRIPT:1500文字/1812ms:7500文字/15379ms
SCRIPT_REQUEST:1500文字/2282ms:7500文字/19574ms

FAST_ENTIRE_SCRIPTはノーマル時(doScrptを使わない時)より30%くらい速いようです。判断はいろいろ分かれるでしょうけれど。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア