Photoshop Extensionの開発12 複数のjsxとのやりとり

javascript, Photoshop

csInterface.evalScriptメソッドでパネルからjsx側とやりとりできるのは前回述べた通り。しかし前回はmanifest.xmlに登録しているjsxとのやりとりのみである。その他複数のjsxとパネル側からやりとりする場合はどうすれば良いのか。実はjsxまでのパスを指定すれば個別のjsxとのやりとりが可能である。具体的には前回と同じcsInterface.evalScriptの引数に$.evalFileとjsxまでのパスをしてすれば実行できる。

$.evalFile引数の中にさらにjsxパスの引数を入れつつクオートで挟まないといけないのでECMA2015m以前だとテンプレート文字列が使えないので見た目が大変な事になる。勿論コールバック関数でjsxから帰ってきたコールバックをパネル側のjsで受ける事も可能。Photoshopからドキュメント情報を集めたりする時にメインのjsxとは別にこういった目的のみのjsxを別に用意すればメインのjsxのみコードが肥大化するのを避けられる。更にこのevalFileから直接 jsxのメソッドを呼び出すのも可能である。

レイヤーを作成するメソッドをパネル側から呼び出す。本当にちょっとしたコードだったらこうやって呼び出すのも可能。
今回のサンプルコードはこちらから。

Beer 寄付してサイトを応援する。