JavaScript API の操作

本マニュアルの読者は、Adobe® Flash® Professional CC ユーザーとして、Adobe® Flash® Player でランタイムに実行されるスクリプトを作成することができる Adobe® ActionScript® に習熟している場合があります。本マニュアルで取り上げた Flash JavaScript アプリケーションプログラミングインターフェイス(JavaScript API(JSAPI))は、Flash オーサリング環境で実行されるスクリプトを作成できる補助的なプログラミングツールです。

本マニュアルでは、JavaScript API で使用できるオブジェクト、メソッドおよびプロパティについて説明します。 オーサリング環境で作業時に記載されているコマンドの使用方法を理解していることが前提になります。 特定コマンドの内容について質問がある場合は、『Flash ユーザーガイド』など、Flash ヘルプの他のマニュアルで該当する情報を検索してください。

本マニュアルはまた、JavaScript または ActionScript のシンタックスと、関数、パラメーター、データ型など、基本的なプログラミング概念についての知識があるユーザーを対象としています。

Flash JavaScript API を使用すると、Flash プログラムを実行している Flash オーサリング環境でアクションを実行するためのスクリプトを作成できます。 この機能は、SWF ファイルを再生している Flash Player 環境でアクションを実行するためのスクリプトを作成できる ActionScript 言語とは異なります。 また、Web ブラウザーに表示されるページで使用する JavaScript コマンドとも異なります。

JavaScript API を使用すると、Flash アプリケーションのスクリプトを作成してオーサリング処理を効率化することができます。 例えば、繰り返し作業を自動化するスクリプトの作成またはツールパネルへのカスタムツールの追加を行うことができます。

Flash JavaScript API は、Netscape JavaScript API を基に設計されている Adobe® Dreamweaver® および Adobe® Fireworks™ JavaScript API に似た設計になっています。Flash JavaScript API は Document Object Model(DOM)を基にしており、JavaScript のオブジェクトを使用して Flash ドキュメントにアクセスすることができます。 Flash JavaScript API には、Netscape JavaScript API のすべてのエレメントと Flash DOM が含まれています。 ここでは、これらの追加されたオブジェクトとそのメソッドおよびプロパティについて説明します。 Flash スクリプトでは、ネイティブの JavaScript 言語であればどのエレメントでも使用できますが、Flash ドキュメントのコンテキストで意味のあるエレメントだけが有効です。

JavaScript API には、JavaScript やカスタム C コードと一緒に使用して機能を拡張するためのメソッドもあります。詳しくは、C レベルの拡張性を参照してください。

Flash の JavaScript インタプリターは Mozilla SpiderMonkey エンジン、バージョン 1.8 で、www.mozilla.org/js/spidermonkey/ から入手できます。SpiderMonkey は、Mozilla.org が開発した JavaScript 言語の 2 つのリファレンス実装のうちの 1 つで、Mozilla ブラウザーにはこれと同じエンジンが組み込まれています。

SpiderMonkey は、ECMAScript(ECMA-262)Edition 3 の言語仕様で定義されているコア JavaScript 言語を実装し、この仕様に完全準拠しています。 サポートされていないのは、ECMA-262 仕様に含まれないブラウザー固有のホストオブジェクトだけです。 同様に、多くの JavaScript リファレンスガイドでは、コア JavaScript とクライアントサイド(ブラウザー関連)JavaScript を区別しています。 Flash JavaScript インタープリターにはコア JavaScript だけが適用されます。

JSFL ファイルの作成

Flash JavaScript(JSFL)ファイルを作成し編集するには、Adobe Flash Professional または任意のテキストエディターを使用します。Flash を使用する場合、デフォルトのファイル拡張子は .jsfl になります。 スクリプトを作成するには、ファイル/新規/Flash JavaScript ファイルを選択します。

ヒストリーパネルでコマンドを選択して JSFL ファイルを作成することもできます。次に、ヒストリーパネルの「保存」ボタンをクリックするか、パネルメニューの「名前を付けて保存」コマンドを選択します。コマンド(JSFL)ファイルは Commands フォルダーに保存されます(JSFL ファイルの保存を参照してください)。他のスクリプトファイルと同様に、このファイルを開いて編集することができます。

ヒストリーパネルには、他の役に立つオプションも用意されています。 選択したコマンドをクリップボードにコピーすることや、Flash で作業中に生成された JavaScript コマンドを表示することもできます。

ヒストリーパネルのコマンドをクリップボードにコピーするには:

  1. ヒストリーパネルでコマンドを選択します。

  2. 次のいずれかの操作を行います。

    • 「コピー」ボタンをクリックします。

    • パネルメニューでステップのコピーを選択します。

ヒストリーパネルに JavaScript コマンドを表示するには:

  • パネルメニューで表示/パネル内の JavaScript を選択します。

JSFL ファイルの保存

Flash オーサリング環境で JSFL スクリプトを使用できるようにするには、Configuration フォルダー内のいずれかのフォルダーに格納します。 Configuration フォルダーは、デフォルトでは次の場所にあります。

  • Windows® 7™:

    boot drive\Users\username\AppData\Local\Adobe\Flash CC\language\Configuration\

  • Windows® Vista™:

    boot drive\Users\username\Local Settings\Application Data\Adobe\Flash CC\language\Configuration\

  • Macintosh OS® X:

    Macintosh HD/Users/username/Library/Application Support/Adobe/Flash CC/language/Configuration/

Configuration フォルダーの場所を調べるには、次の例に示すように、fl.configDirectory または fl.configURI を使用します。

// store directory to a variable  
var configDir = fl.configDirectory; 
// display directory in the Output panel 
fl.trace(fl.configDirectory);

Configuration フォルダーには、オーサリング環境でアクセスできるスクリプトを格納するフォルダーがあります。それらは、Behaviors(ビヘイビアーのユーザーインターフェイスのサポート)、Commands(コマンドメニューに表示されるスクリプト)、JavaScript(ユーザーインターフェイスコントロールのデータを設定するためにスクリプトアシストで使用されるスクリプト)、Tools(ツールパネルの拡張ツール)、WindowSWF(ウィンドウメニューに表示されるパネル)の各フォルダーです。本マニュアルでは、コマンドおよびツールで使用されるスクリプトについて重点的に説明します。

Commands フォルダーのスクリプトを編集すると、新しいスクリプトは Flash ですぐに使用可能になります。 拡張ツールのスクリプトを編集する場合は、Flash を終了して再起動します。または、fl.reloadTools() コマンドを使用します。ただし、スクリプトを使用して拡張ツールをツールパネルに追加してから、そのスクリプトを編集する場合は、ツールを削除してから再度ツールパネルに追加するか、編集したツールを使用可能にするために Flash を終了して再起動する必要があります。

オーサリング環境で使用するためのコマンドおよびツールファイルを保存する場所は 2 つあります。

  • コマンドメニューのアイテムとして表示されるスクリプトの場合は、JSFL ファイルを以下の場所の Commands フォルダーに保存します。

    オペレーティングシステム

    場所

    Windows 7:

    boot drive\Users\username\AppData\Local\Adobe\Flash CC\language\Configuration\Commands

    Windows Vista

    boot drive\Users\username\Local Settings\Application Data\Adobe\Flash CC\language\Configuration\Commands

    Mac OS X

    Macintosh HD/Users/userName/Library/Application Support/Adobe/Flash CC/language/Configuration/Commands

  • ツールパネルの拡張ツールとして表示されるスクリプトの場合は、JSFL ファイルを以下の場所の Tools フォルダーに保存します。

    オペレーティングシステム

    場所

    Windows 7:

    boot drive\Users\username\AppData\Local\Adobe\Flash CC\language\Configuration\Tools

    Windows Vista

    boot drive\Users\username\Local Settings\Application Data\Adobe\Flash CC\language\Configuration\Tools

    Mac OS X

    Macintosh HD/Users/userName/Library/Application Support/Adobe/Flash CC/language/Configuration/Tools

XML ファイルなど、JSFL ファイルに属するファイルがある場合は、そのファイルも JSFL ファイルと同じディレクトリに保存します。

スクリプトの実行

スクリプトを実行する方法はいくつかあります。この節では最も一般的な方法を示します。

現在表示または編集しているスクリプトを実行するには:

  • 右クリック(Macintosh ではコマンドクリック)して、スクリプトを実行を選択します。

  • スクリプトウィンドウのツールバーでスクリプトを実行アイコンをクリックします。

この方法では、スクリプトを保存していなくても実行できます。また、FLA ファイルが開いている場合でもスクリプトを実行できます。

Commands フォルダーにあるスクリプトを実行するには、次のいずれかの操作を行います。

  • オーサリング環境で、コマンド/<スクリプト名> を選択します。

  • スクリプトに割り当てたキーボードショートカットを使用します。 キーボードショートカットを割り当てるには、編集/キーボードショートカットを使用して、コマンドポップアップメニューから、描画メニューコマンドを選択します。メニューツリーのコマンドノードを展開し、使用可能なスクリプトのリストを表示します。

Commands フォルダーにないコマンドスクリプトを実行するには、次のいずれかの操作を行います。

  • オーサリング環境から、コマンド/コマンドの実行を選択し、実行するスクリプトを選択します。

  • スクリプト内から、fl.runScript() コマンドを使用します。

  • ファイルシステムからスクリプトファイルをダブルクリックします。

JSFL ファイルに実装されているツールをツールパネルに追加するに:

  1. ツールで使用する JSFL ファイルと関連ファイルを Tools フォルダーにコピーします(JSFL ファイルの保存を参照してください)。

  2. 編集/ツールパネルのカスタマイズ(Windows)または Flash/ツールパネルのカスタマイズ(Macintosh)を選択します。

  3. 使用可能なツールのリストにツールを追加します。

  4. 「OK」をクリックします。

各 JavaScript API コマンドを ActionScript ファイルに追加するには、MMExecute() 関数を使用します。この関数については、『ActionScript 3.0 言語およびコンポーネントリファレンス』で説明しています。ただし、MMExecute() 関数が有効であるのは、コンポーネントのプロパティインスペクターやオーサリング環境内の SWF パネルなど、カスタムユーザーインターフェイスエレメントのコンテキストで使用する場合だけです。JavaScript API コマンドを ActionScript から呼び出した場合でも、Flash Player やオーサリング環境外では無効になります。

ActionScript スクリプトからコマンドを発行するには:

  • 次のシンタックスを使用します(いくつかのコマンドを 1 つのストリングに連結できます)。

    MMExecute(Javascript command string);

    コマンドラインからスクリプトを実行することもできます。

Windows でコマンドラインからスクリプトを実行するには :

  • 次のシンタックスを使用します(必要に応じてパス情報を追加します)。

    "flash.exe" myTestFile.jsfl [-AlwaysRunJSFL]

    スクリプト実行の確認を求めるダイアログボックスを表示しないようにするには、‑AlwaysRunJSFL オプションを使用します。

Macintosh の「ターミナル」アプリケーションからスクリプトを実行するには:

  • 次の osacript シンタックスを使用します(必要に応じてパス情報を追加します)。

    osascript -e 'tell application "flash" to open alias "Mac OS X:Users:user:myTestFile.jsfl" '

    osascript コマンドは、ファイル内の AppleScript も実行できます。例えば、myScript という名前のファイルに次のテキストを配置できます。

    tell application "flash" 
    open alias "Mac OS X:Users:user:myTestFile.jsfl" 
    end tell

    その後、スクリプトを実行するために、次のコマンドを使用します。

    osascript myScript
  • 次のように、flashpro コマンドを使用します。

    /Applications/Adobe\ Flash\ CC/flashpro.app/Contents/MacOS/flashpro <path of the jsfl file>