Photoshop Extensionの開発21 CEPイベント2
前回一部CEP上のイベントを紹介したがさらに以下紹介する。
com.adobe.csxs.events.WindowVisibilityChanged
Extensionパネルが出たり消えたりした時に発火
com.adobe.csxs.events.ExtensionLoaded
Extensionパネルが読み込まれた時に発火?多分
com.adobe.csxs.events.ExtensionUnloaded
Extensionパネルが読み込まれなかった時のイベント?多分。もしかしたら閉じた時のイベントかもしれません。すいませんよくわかっていません。
WindowVisibilityChangedに関しては事前にPersistenceをオンにしなければ作動しない。つまりパネルが閉じられている時も含めて常にパネルの状態が記録されてなければいけない。persistenceに関してはこちらの記事を参照。
とりあえず把握しているイベントは以上だが他にも記載が足りてないイベントが他にもあるが正直全てのイベントの動作確認をしてない。いつか全てのイベントについて記載してみたい。またこういったイベントからjsxにデータを投げてそこからさらにパネルのjsにデータを投げるといったことを続けると非同期のコールバック地獄に陥るのでPromise、async、awaitで処理するといい。以下Photoshop上でドキュメントを切り替えるとドキュメント名前と縦幅、横幅を自動的に取得してパネル上に表示するコード。
js
jsx
但しPromise、async、awaitとともに古いPhotoshopで殆ど動かないので広く配布する場合はbabelでecma5にトランスパイルした方が良い。その他Photoshop上で発火するイベントもCEPのイベントと全く違った形で存在するがまた別の機会に。
今回のサンプルはgithubにアップしました。