Just Diary

Follow me

カテゴリー:javascript 一覧

Photoshop Extensionの開発37 PhotoshopのイベントをCEPで管理する

前回の記事ではJSXでのイベントに触れました。JSX上で設定した場合ぱっと見イベントの設定がわからないので思わぬ場面で動く場合もあります、というわけでここはExtensionパネルの出番です。イベントのオン、オフをパネル上で表示させればユーザー側にイベントの可否を視覚的に表示することが可能です。やはりhtmlとcssでインターフェイスを作れるのは強い。 CEPでのイベントですがDOMと同じようにイベントを追加してイベント発火時にコールバック関数が動く。そして何かしらの処理がPhotoshopに走るという具合なのですがイベントIDをjsxから取得したり固有のイベントオブジェクトを生成する必要があ

Read more

Photoshop Extensionの開発36 Photoshop上のイベント

久しぶりのPhotoshopCEPの記事です。 Photoshop上ではイベントをscriptで管理して何かしらの処理を発火させることができます。Photoshopで画像を編集している最中なんかに自動的に指定した処理を発火させることが可能です。レイヤーを追加したら自動的にレイヤー名をリネームするとかトリミング時に画像サイズをアラートで表示する等実装するとよりアプリらしさが増します。 但し今まで解説したようにイベントと言ってもいくつかの種類があって大まかに分けると DOM event CEPのパネル上で起こした動作によって発火するイベント。ブラウザ上で発火するイベントと同じです。clickイベン

Read more

Illustrator ,Photoshop Extensionの開発35

デバッグ周りが大変だったりいまだにecma3しか使用できないadobe jsxです。今回cep上でやりとりする時の細い開発情報をさらに載せます。 何度か触れていますがjsx単体で動かす場合は外部ファイルをincludeで読み込むことができるのである程度オブジェクト、関数をファイル事に分けられて見やすくできますがcepからアクセスする場合はこのincludeが使用できません。規模が大きくなるにつれてコードの量も大きくなってくるので厄介です。実はこの外部ファイル読み込みですがcep側のscriptで読み込むことが可能です。やり方は簡単。 func.jsがjsxのフォルダに入っていると仮定してcep

Read more

IllustratorのCEPでデバッグをやりやすくする。

Photoshopに比べて謎な使用の多いIllustratorのCEPですが一番不便なのがデフォルトだとデバッグ時にIllustraotr本体のソフトを一々落とさないとコードの変更が反映されないとこです。Photoshopでいうところの強制Persistentです。参考Photoshop Extensionの開発11 Persistence IllustratorだとデフォルトでこのPersistentがオンになっている故にパネルを一度閉じてもコードの修正が反映されないのです。だからと言ってコードを書き直す度にIllustrator本体を落としてデバッグするのはかなりめんどくさいです。というわ

Read more

CEP上で画面を切り替えるインタフェースを作る

CEPにいろんな機能を盛り込む時にモードや画面の切り替えを行いたい時があると思います。機能が増えて行くにつれて色々パーツを埋め込みたくなりつつもパネル自体の大きさはあまり大きくしたくない時などがあります。 今回はこんな感じの画面を切り替えるCSSを作りましょう。CEP上ではウェブサイトと違って基本的にhtmlはindex.htmlのみ使用して他のhtmlファイルにリンクで飛ぶようなやり方はしないので二つ分の画面を一つのhtmlにまとめます。それではまずは htmlから <div class=”mainForm box form“>と<div class

Read more

Reactの環境構築をAdobeCEP上で行う

基本的に一枚のパネル上でインターフェイスを構築する必要があるExtensionでは多機能なパネルを開発しようと思うと表示の切り替え機能が必要になったりそれに伴いhtmlのコード量が莫大になったりします。結局ある程度の規模のパネルを開発する場合は何らかしらのフレームワークの導入も視野に入ってくる、という事で今回はReactの環境構築をAdobeCEP上で行う場合につまづいた点を載せたいと思います。まずは最低限必要なnpmパッケージから。 React、webpack、babelの一連のパッケージになります。 Node.jsのためにexternalsをインストール async,awaitを使用するた

Read more

html formにセットされた値を効率よく取得する。

前回からの続きですがAdobe CEPでUI上でパラメータの値をユーザー側で設定してjsx側に送る事は何度も何度も出てくると思います。昔はj-queryで取得したなんて事もやってましたが流石に取得するformの数が増えてゆくと地道に一つづつ取得するなんて事は非効率的だし苦痛です。さらにJSONでjsx側に送るため効率よくobjectにまとめなければなりません。arrayメソッドを中心に効率よく取得してみましょう。 topcoatのcssをベースにしたhtmlから取得してゆきます。最初はラジオボタンの簡単なhtmlです。チェックされたボタンの値を取得します。実はラジオボタンの値を取得するだけなら

Read more

top coatのcss上で動的にhtml formを追加する

Adobe extensionを開発しているとformを扱う事が多くなります。jsxから数値を取得して、それをパネル上で表示して、数値を入力またjsxにアクセスしたり。デフォルトのtopcoatのcssは基本の設定が揃っていて便利ですがhtml構造が少し難しくなりがち。 前回説明したようにcheckboxやradiobuttonはlabel要素の中にdivが混じっていたりと少し複雑です。ここら辺のコードは柔軟なCEPを開発しようと思うと何度も触れる部分なので普段からまとめられると便利です。例えば以下のようなリストをjsで作るとしましょう。 各種input要素等を囲ったlabel要素があってその

Read more

jsで無理矢理Illustratorのドキュメントの裁ち落としサイズを取得

jsでできそうでできないIllustraotrのドキュメントの裁ち落としサイズの取得。一時期某フォーラムでも話題になって最終的にC++で書かれた専用のプラグインを用意することで解決という結局jsのみでは解決できない結論に至ってました。 しかしそれでもなんとかjsから裁ち落としのサイズを取得だけでもしたいという方もおられるかもしれません。という事でjsから無理矢理ドキュメントの裁ち落としサイズを読み込むExtensionを作成しました。 まずjsから裁ち落としのデータにアクセスするオブジェクトモデルがイラストレーターにないのでIllustratorのAiファイル情報からテキストとして読み込む事に

Read more

Adobe Bridge script 入門

IllustratorやPhotoshopに比べてマイナーなBridgeのscirptですが使いこなせればファイル整理から他のアプリとの連携にも役に立つはず? とはいえある程度細かい情報は他の先人の方々が書かれているので本当に入り口だけ書こうかと思います。 ある程度まとまった情報は古籏氏の記事で読めます。リファレンスはこちらから入手できます。 多くの方が最初に知りたい情報はファイル情報の入手だと思います。Bridgeのウインドウで開いているファイルの情報はapp.document.thumbnail.childrenから取得できます。 他のjsxをやっている方なら馴染みやすいとは思いますが各種

Read more

最近のコメント

Other link

最近のコメント

Close