Photoshop Custom Actiondescripterをストレージとして扱う
あのenumaratorだとかdescripterとかPhotoshopのスクリプトってなんだか異質なわけですが、これらもうまいこと使いこなせばあらぬ方向に利用できたりします。今回はcustom Actiondescripterを利用したストレージの構築をやってみましょう。
利用するのはApplicationクラスにあるputCustomOptionsとgetCustomOptionsメソッドです。わりと単純なのでコードをご覧ください。
書き込み
var desc = new ActionDescriptor(); desc.putString(1234567890123, "TESTString 💩 日本語"); app.putCustomOptions("storageTest", desc, true);
登録の場合、自前でカスタムActionrdescripterを生成し、カスタムキーと共に保存したい値(String)をActiondescripterにputStringメソッドで設定します。それをオプションキー(上の例の場合「storageTest」)と共にputCustomOptionsメソッドにつっこむと言った感じですね。3つ目の引数はpersistentプロパティでtrueにするとず〜っとこの値を保持してくれます。
読み出し
var customActionDescriptor = app.getCustomOptions("storageTest"); alert(customActionDescriptor.getString(1234567890123));
読み出しの場合、設定したオプションキーでgetCustomOptionsメソッドにて読出しを行います。帰ってくるのはActiondescripterオブジェクトですからgetStringメソッドに設定した数値(カスタムキー)をつっこんで読み出します。
読み出しはこんなふうになります。
消去
app.eraseCustomOptions("storageTest”);
消去はeraseCustomOptionsメソッドにオプションキーを渡せばOK。
ちなみに、こちらはPhotoshopのレジストリに書き込みますのでpersistent属性をtrueにした場合Photoshopを終了しても内容は保持されますです。
こう書いているとカスタムキーとオプションキーがどっちだったか分からなくなってくるという罠にかかってしまいそうで困る(^^)