タグ:ECMA 一覧
2023年も終わりなのでここ最後にUXPのここ数ヶ月、最近更新された機能とか細かい仕様についての記事です。 Photoshop最近更新された機能 CC2024のメジャーアップデートに合わせるように以下のような機能が更新されました。 action recording PhotoshopアクションからScriptを実行できる機能が実装されました。詳しくは詳しくはこちらの記事へ。 本製品版でも使用できます。 Adobe UXP Developer Tools ver2 開発に仕様する専用アプリ、UXP Developer Toolsがver2にアップデートされて大幅に更新されてテキストエディターも搭
Read more
Adobe UXPプラグインUIを作る場合Spectrum UXPというAdobeが最初からUXPに既に用意しているパーツを使用して開発できます。(後述しますがSpectrum UXPとAdobe Spectrum WebComponentsは別物) サンプルのパネルUI。各パーツはSpectrum UXPで構成されている。 このパーツを使い、細かいパーツのデザイン、レイアウト等一から作成しなくても既存のパーツを使えるので楽です。かなりこだわりがある方ならまだしもデザインに対してそこまで考えたくない方は便利ではないでしょうか。しかしこのSpectrum UXPですが用意されているというよりも埋
Read more
Photoshop UXPのImaging APIのベータ版が公開されました。2023年1月現在Photoshop 24.2ベータ版で使用できます。これはピクセル操作をJavaScriptから直接操作できるAPIで既存のExtendScriptのように一ピクセルづつ選択範囲を作って抽出、塗りつぶすような操作をする必要もありません。UXPでもImaging API以前はピクセル操作に関しては従来のExtendScriptとはそこまで大差はありませんでした。 *ExtendScriptのピクセル操作に関してはこちらの記事を参照してください。Photoshop Extensionの開発28 フィルタ
Read more
遂にUXPがInDesignにも来ましたが今の開発の流れを見る限りIllustratorその他のアプリケーションにも本格的に実装される日はまだまだ長そうです。しかし規模が大きくなってくるとExtendScriptの開発もやはり効率化したくなるものです。特にCEPとくっ付いたExtendScriptのテストの実行は色々大変で各関数、オブジェクトに問題が出てくる度にコードを一部分だけ抜き取ってテストするのもだれます。ということで今回ExtendScriptにユニットテストを実装してみました。但しそんなに本格的なものを実装したわけでは無いのでご了承ください。私自身個人開発の域を超えない範囲の開発しか
Read more
UXPの裏で影が薄くなってきていますがまだまだCEPはAdobeアプリケーション内でも主流ですし当分は現役でしょう。しかし終わりの見えてきたCEPも未だに情報が少なく開発に困ることが少なくありません。というわけで今回はライブラリ関係とjs実行環境関係について触れたいと思います。 JSON2 ECMA3のExtendScript側からオブジェクトをパネル側に返すときに必要なJSONのPolyfillです。(詳しくは過去の記事参照。) douglascrockford氏の公開しているGitHubから使わせてもらいましょう。 Vulcan.js CEPパネルの相互的な通信を可能とするライブラリです。
Read more
PhotoshopUXPでサンプルプラグイン作りました。モダンなコードで書くとどんな感じのコードになるかのサンプルになります。内容はPhotoshopの雛形となるドキュメントを自動で生するプラグインです。ドキュメントを作成した後にレイヤーを作成したりガイドを引いたりしてドキュメントの雛形を作ってくれます。コード全体はこちらからご覧ください。 プラグインの概要 classからインスタンスを作成するとドキュメントを作成します。以下のようになります。 DocumentPreset classのコンストラクターに雛形の名前、幅、高さ、解像度、カラーモード、土台
Read more
ECMA2015以降classベースのオブジェクトの書き方が可能になりました。それまでの関数式ベースの書き方から大きく変わりました(但し中身は同じ)。今回classベースのオブジェクトの書き方を解説します。まずはECMA2015以前の関数式ベースのコンストラクトの作成について。 ご覧の通りECMA5まではコンストラクトの作成は関数をベースにしています。関数の引数にインスタンスのプロパティにしたい値を渡してthisで受け取る、というものでした。thisは所有者のインスタンスによって値が縛られます。このようにコンストラクトをnewした時に初めてthisの参照先が決まようになっています。またオブジェ
Read more
javascriptというかプログラミングを始める上で最初の壁がどうやって始めるのか。言語によっては仮想環境とか色々ややこしかったりします。その点javascriptは簡単に始めることのできる部類だとは思いますがそれでもブラウザ上で動かす大元のjavascriptはhtmlがなければ全く動きません。勿論javascriptを動かすだけの簡単なhtmlファイルを用意するくらい特別難しいわけでもないですが毎回用意するのは面倒でしょう。Adobe scriptならExtendScript ToolkitというAdobe script用のお手軽なエディターもありますがMacだとcatalina以降の環
Read more
javascriptにおいてundefinedの扱いには誰もが慎重になるでしょう。undefined、それ自体がバグの原因になり得ます。変数の宣言でもオブジェクトのプロパティでもundefinedを避けるために事前に仮の値を代入したりする事もしばしばあります。今回undefinedの扱いを紹介します。 関数のデフォルト引数 ECMA2015よりデフォルト引数がサポートされました。これは関数の引数に何かしらの値をデフォルトの値として渡すことができます。ご存知の通り関数の引数は何も値を受け取らなかった場合はundefinedとなります。ECMA2015以前ですと以下のようにデフォルトの値に対応する
Read more
string型のプリミティブ値、地味に扱いが面倒なことがあります。ゼロパッディング、余白の削除、等。string型も最新の環境では色々便利になっています。 テンプレートリテラル ECMA2015以前、あるstring値を代入時に例えばstring値と関数の結果、変数をつなげる場合、ダブルクォート”もしくはシングルクォート’を使用して変数、式の範囲とstringの範囲を細く分ける必要がありました。 ダブルクォートかシングルクォートをstring値として使用する場合はどちらかで文字列を囲ってその文字列の中にどちらかを使用するという面倒なものでした。またクオートを何度も囲い直
Read more