Photoshop UXP eventを登録する

UXP

CEPにもありましたがPhotoshopにはアプリケーションの動きに対してコールバックを発火させるイベントを登録できます。全てのアプリケーションの動き、とまで言いませんがかなりの範囲をカバーしています。詳しくはphotoshopのイベントをcepで管理するphotoshop-extensionの開発17-イベント基本を。CEPの場合csInterfacインスタンスから登録するPhotoshop以外のアプリケーションでもサポートされているイベントとPhotoshopのみのPhotoshopJSONCallbackのイベントがありました。PhotoshopJSONCallbackはIDを取得する必要があったりして少し複雑でしたがUXPになってかなり簡素になりました。

ブラウザのaddEventListenerのようにイベントとコールバック関数を渡せば発火します。イベントの名ですがこれは自分で対応したイベント名を見つける必要があります。見つけ方としてjardicc氏のalchemistを使用する方法があります(詳しくはこちらを参照)。

alchemistをListenerがアクティブな状態でアクション記録操作のように目的の操作を行うとイベント名を取得できます。以下画像をトリミングした時の例。

event crop

その他eventNotifierにコールバックでイベントが起きる度にコールバックでイベントの中身を受け取ることも可能です。

photoshopモジュールのeventNotifier setterにコールバック関数を代入することであらゆるイベントが起こったタイミングでコールバック関数を発火させることができます。

eventNotifier

ただしeventNotifierはあらゆるイベントを取得してしまうので重くなりがちと公式で説明されています。なので極力本番環境で使うのはやめて開発環境下でのみの使用を勧めています。公式ドキュメント。またバージョンが更新された時にいつか使用できなくなる可能性も示唆されているので最新の情報に気をつけてください。

 

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