MutationEventというやつは…

Indesignですが、こいつはまともに動きません。おまけに検索しても情報がほとんど出てきません。しかしながら、皆様ご存知の通りOMVにはごっそり記述されています。
と言う事で調べてみたわけです。どうやらDocumentレベルへはインプリメントされているものの、その下層オブジェクトには実装されていないってところが現状のようです。
しかし、まったく使えないかと言うとそうでもなかったりします。

続きを読む……


performanceMetricで状態監視

先日menuActionとかいじっててサブメニュー山ほど追加して削除がめんどくさくなったので

app.menus.item(“$ID/Main”).submenus.everyItem().remove();

なんてことしちゃいました。ええ、笑うしかありません。気分的には草で画面全体をうめてしまいたいぐらいです。
きっとこの気持ちはやった人にしか分からないでしょうwww
それでもショートカットは使える所がよけいにおかしいですwww
二度としないと思うので記念にスクショも取りました。ついでですのでご覧下さい。

missing_menus.png

まあ、それは置いておいて、先日規模の大きいドキュメント向けに書いたscriptのパフォーマンスが出なくて困ってしまいました。ヒットカウントチェックしても正常ですし、これといって思い当たるコードも無いのでどうしようかと考え込んでしまいました。
少し調べてみるとJavascriptからIndesignの内部情報にアクセスする手だてがあるじゃないですか。

続きを読む……


eventListenerのハンドラに関するbug

先日のeventListenerに関連する情報です。メニュー項目のinvokeを捉えてデフォルトをキャンセル出来ると言う事はメニュー項目に対して独自の機能を追加出来ると言う事ですからUIを組み込む事も多々ある訳です。
わたしは最近あまり使わないのですが、Indesignには独自のユーザーインターフェスが実装されています。たまたま過去に組んだスクリプトをメニューに当てる処理をしていて引っかかったのが今回のbugです。

続きを読む……


cancel技…Indesignの挙動を変える2

連休おわっちゃいましたねえ、気温もぐんぐん上昇中です。しかし、仕事の方はもうしばらく多忙な状態が続くようです。まあ、ありがたい話なのですが。
このところeventListenerに凝っていたりします。うまく実装するとトンデモナイ挙動をします。正直役に立たないものも多いのですが面白いです。
そんなこんなで今回もeventListener絡みでいきます。

続きを読む……


eventListenerを利用してIndesignの挙動を変える

世はごーるでんうぃーくなるもののまっただ中。しかし、わたしのようにカレンダー通りの日程で粛々と作業をこなしている方も多々いらっしゃるでしょう。みなさま、おつかれさまでございます。
回りくどい話はこれ位にして、さんざん探しまわりました。結構単純な事でして、結局マニュアルを良く読んだら理解出来たという落ちです(英語読むの面倒くさかったから読んでなかった)。フォーラムにまで助けを求めてしまいましたが…ついでですのでフォーラムにも書いておきました。

#targetengine session

var listner = app.activeDocument.addEventListener (
    ‘afterPlace’,
    function (ev){
        var tg = ev.target;
        var mybnds = tg.geometricBounds;
        tg.geometricBounds = [mybnds[0],mybnds[1],mybnds[0]+30,mybnds[1]+30];
        tg.fit (FitOptions.proportionally);
        tg.fit (FitOptions.centerContent);
        });
listner.name = ‘testEvent’;

やりたかったのはこんな感じです。
配置処理をキャプチャして強制的にバウンズを設定し内容をフィットさせます。
配置コマンドの基本動作をオーバーライドする形ですので解除するか、当該ドキュメントを閉じるまではず〜っとこの動作をします。
しかしながら、このままでは少し利便性に欠けますので色々と付け足してみましょう。

続きを読む……