スクリプト面から見たInDesign CS5の新機能(0)前置き

InDesignではバージョンが上がるとスクリプトもバージョンが上がって新機能がついたりします。しかーし、Adobeはそのことについて一切アナウンスしないので、どこがどう変わったのか、新しくなったのかは、前バージョンと比較することでしかわかりません。そして、その作業は非常に大変ですし、必要性もあまり高くありません。普通にスクリプトを書いている分には、新しいバージョンで問題なく動作すればいいわけですし、新しい機能を使うことで格段に便利になるわけでもないからです(格段に、というのは手作業からスクリプトを用いた自動化に変わることに比較して、という意味)

ですから、新しいバージョンで動作しなくなった時点で初めて変更箇所や新機能を知るのが一般的です。そこで転ばぬ先の杖、ということで、しばらく「スクリプト面から見たInDesign CS5の新機能」ということで書いていきたいと思います。

てゆうか、オブジェクトモデルの完成には、もうしばらく時間がかかりそうなので、その検証中に理解したことを書き綴っていくだけなんだけども。

ところで以下のオブジェクトが何のことなのか分かりません。誰かあてずっぽうでもいいからヒントないですか?

  • PlaceGun
  • MultiStateObject
  • MutationEvent
  • Change(CS4から引き続き)

『スクリプト面から見たInDesign CS5の新機能(0)前置き』へのコメント

  1. 名前:なかとじ 投稿日:2010/07/07(水) 15:59:24 ID:27ea27878 返信

    >あてずっぽう
    ということで。
    MutationEventって、メニューイベントのようにフックをかけておくと、ドキュメントに変化があったときにイベントに呼んでもらえたりしませんか?

  2. 名前:お~まち 投稿日:2010/07/07(水) 16:11:46 ID:0f75b0c20 返信

    >MutationEventって、メニューイベントのようにフックをかけておくと、ドキュメントに変化があったときにイベントに呼んでもらえたりしませんか?
    ほほう、なるほど。イベント絡みはよく理解できていないんですが、試してみます。ありがとうございます。
    うまくいけば何か面白いことができそうですね。

  3. 名前:mg 投稿日:2010/07/08(木) 00:21:28 ID:d14169072 返信

    PlaceGunは弾込めて配置?ってことで、複数連続配置のことでしょうか?
    http://cssdk.host.adobe.com/sdk/1.0/docs/WebHelp/references/csawlib/com/adobe/indesign/package-detail.html
    見ましたがよく分からないです。
    端々に出てくる CSHostObject てのが気になりますね。

  4. 名前:なかとじ 投稿日:2010/07/09(金) 02:45:50 ID:0b8667c84 返信

    CS5を入れていないのが歯がゆいのですが…
    >MutationEvent
    な〜んとなくオブジェクトに「お知らせフック」を掛ける気配。違いますかね?
    >PlaceGun
    これって、複数オブジェクトを仮読み込みしておいて、ペンペン配置していく機能がありますよね? あれのストックを表すオブジェクトではないでしょうか。あ、でも親クラスがPreferenceだからあの機能の設定値かな?
    >CSHostObject
    本当にあてずっぽうですが、APIドキュメントを見ると常にこれが親クラスになっています。もしかして、これはCSシリーズで包括的にオブジェクトを扱えることを意味しているのではないでしょうか。アプリケーションがスーパークラスではない、と。
    で、その上位クラスがflash.utils.Proxy。
    あぁ、勝手に妄想がふくらんできました(笑)
    電子書籍アプリ制作には、InDesignのドキュメントでインタラクティブな動作をハンドリングできなければなりません。外部オーサリングになるか、プラグインでActionScriptをオブジェクトと関連づけるようにになるのか……いずれにしても、基幹技術にFlashを使ってオーサリングしていくと推測されます。
    ただ、単純なFlashオブジェクトではなさそうなので、CSHostObjectというクラスは、その際にも必要になる「アプリケーション間通信」のための伏線かもしれません。ということは、電子書籍は外部ツールとの連携でオーサリングしていくのかなぁ。
    ひょっとしてCS5環境は、OS起動時かCSアプリ起動時にアプリ間の調停役デーモン(既存ならSwitchBoard)がバックグラウンドで立ち上がってたりしませんか?
    他人様の板なのに勝手な妄想だけでドンブリ3杯いってしまいました。
    すみません……

  5. 名前:お~まち 投稿日:2010/07/09(金) 09:35:14 ID:33fa52a3c 返信

    >他人様の板なのに勝手な妄想だけでドンブリ3杯いってしまいました。
    >すみません……
    いやいや全然かまいませんよ。一生懸命考えていてくれるんだな、というのが伝わってきます。
    InDesignのスクリプトって、目の前のことだけでなくて、そのバックグラウンドでいろいろなことができそうな気がするっていうのが魅力的ですよね。可能性がどんどん膨らんできて、最終的にそれが実現できたとき、とてつもない満足感を得られる醍醐味があります。だからやめられないんですよ。

  6. 名前:みめも 投稿日:2010/07/12(月) 23:58:03 ID:de5411a20 返信

    あてずっぽうで、
    Change は「テキスト変更履歴のトラック」の変更の何かしらを持っているとか?
    MultiStateObject のMultiState ってエッセンシャルガイドCS5 にあったMulti State のことでしょうか???
    PlaceGunはkImportAndLoadPlaceGunCmdBoss で検索するとちょっと情報が出てきます。といってもスクリプトではなくプラグイン情報なのですが…。

  7. 名前:匿名 投稿日:2011/04/22(金) 09:09:52 ID:bfa522741 返信

    プレースガンって、配置するときのあれですよ。
    var tgDc = app.activeDocument;
    var f = File.openDialog ("PDF ファイルを選択して下さい");
    if (f){
    pdfF = f.read();
    app.pdfPlacePreferences.pageNumber = 1;
    tgDc.placeGuns.loadPlaceGun(f);
    }
    使い方はこんな感じですね。
    と、通りすがりに古い記事に書き込んでみるてんでした。

  8. 名前:お~まち 投稿日:2011/04/22(金) 09:34:33 ID:693971e28 返信

    コメントありがとうございます。
    実はMutationEvent以外は全て使い方が分かってました。更新してなくてごめんなさい。