Photoshop Extensionの開発21 CEPイベント2

javascript, Photoshop

前回一部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にアップしました。

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