アクセシビリティ
デベロッパーリソース
Mayur Mundada

Mayur Mundada

Adobe

作成日:
2007年11月12月
ユーザレベル:
上級
製品:
Fireworks
Flash

ActionScript 3.0でのFireworksイベントの処理

カスタムパネルは、Fireworksを拡張して新機能をツールに導入したり、ワークフローをチームの手順に導入できる機能の1つです。Flash CS3 Professionalでカスタムパネルを作成または修正して、Fireworks CS3で使用するためのSWFファイルとしてエクスポートします。ActionScript 2.0またはActionScript 3.0を使用してこれらのパネルを拡張しFireworksイベントを処理することができます。

この記事では、ActionScript 3.0を使用したカスタムパネルでのFireworksイベントの処理について重点的に説明します。

必要条件

この記事を効率良くフォローするには、次のソフトウェアやファイルが必要です。

Fireworks CS3

Flash CS3 Professional

サンプルファイル:

fw_events_as3.zip (ZIP:690K)

この記事に必要な予備知識

ActionScript 3.0、Fireworks DOM、またFireworksでのJavaScriptを使用した作業についての基礎知識を持っていることが推奨されます。ActionScript 2.0を使用したカスタムパネルの作成方法についてさらに詳しくは、Trevor McCauleyによる次の記事を参照してください。

イベントの受信

Fireworksでイベントが生成されると、FireworksはActionScript 3.0 SWFファイルのIsFwCallbackInstalled関数を呼び出し、イベント処理コードがカスタムパネルで記述されたものであるかどうか確認します。関数がtrueを返すと、Fireworksはまずカスタムパネルで記述されたイベントコードを実行してから、Fireworksのイベント処理コードを実行します。図1はFireworksイベントの制御フローを示しています。

Fireworksイベントの制御フロー

図1. Fireworksイベントの制御フロー

Trevorの「Creating Fireworks panels」のパート2シリーズでは、Fireworksによって生成されたすべてのイベント*を含むテーブルを示しています。Fireworks CS3で発生したこれらのイベントをActionScript 3.0で利用するには、カスタムパネルに次の2つの関数を記述する必要があります。

  • IsFwCallbackInstalled: この関数はFireworksによって呼び出され、生成されたイベントに対してイベントハンドラが記述されたかどうかチェックします。

    次の例では、開いているまたは閉じているFireworksドキュメントに関連したイベントがないかFireworksがチェックするときにtrueを返します。これにより、アクションが発生したときにカスタムパネルのイベントに対してハンドラを呼び出すようにFireworksに指示します。

    function IsFwCallbackInstalled( funcName:String ):Boolean
    {
       switch( funcName )
       {
          case "onFwDocumentOpen":
               return true;
          case "onFwDocumentClose":
               return true;
          case "setfwActiveToolForSWFs":
               return true;
       }
       return false;
    }
  • イベント関数: イベントを処理するためのコードです。これは、Fireworksでイベントが発生したときにイベントに関連するコマンドを実行するために定義する関数です。次の例では、onFwDocumentOpenおよびOnFwDocumentCloseのイベントに対するイベントハンドラを示しています。ドキュメントを開いたとき(図2を参照)または閉じたとき(図3を参照)は常に警告メッセージが表示されます。

    function OpenDoc()
    {
       MMExecute('alert("Opening Document");');
    }

    ドキュメントを開いたときの警告メッセージ

    図2. ドキュメントを開いたときの警告メッセージ

    function CloseDoc ()
    {
       MMExecute('alert("Closing Document");');
    }

    ドキュメントを閉じたときの警告メッセージ

    図3. ドキュメントを閉じたときの警告メッセージ

関数の登録

Fireworksが呼び出す、ActionScript 3.0で記述されたすべての関数を登録する必要があります。Fireworksでは、登録されていない関数をカスタムパネルで呼び出すことはできません。関数を登録するには、次のコード行を関数に追加します。

ExternalInterface.addCallback("<alias name>",<function name>);

ここで、

  • <alias name>はFireworksが呼び出すイベント関数名です。
  • <function name>はActionScript 3.0で記述される関数の名前です。

例えば、IsFwCallbackInstalledを登録するには、次のコード行を追加する必要があります。

ExternalInterface.addCallback("IsFwCallbackInstalled",IsFwCallbackInstalled);

同様に、OpenDocおよびCloseDocを登録するには、次のコード行をそれぞれ追加する必要があります。

ExternalInterface.addCallback("onFwDocumentOpen",OpenDoc);
ExternalInterface.addCallback("onFwDocumentClose",CloseDoc);

イベントを処理するActionScript 3.0の関数は、その関数とIsFwCallbackInstalledが登録された場合、またイベントが生成されたときにIsFwCallbackInstalledtrueを返した場合にのみFireworksで実行されます。

サンプルファイルの使用

この記事に付属のサンプルファイル(fw_events_as3.zip)には次の2つのファイルが含まれます。

  • ActionScript.swf: このファイルを次のFireworksのインストールフォルダにコピーします。

    • Windows: C:\Program Files\Adobe\Adobe Fireworks CS3\Configuration\Command Panels

    • Macintosh: Hard Drive:Applications:Adobe Fireworks CS3:Configuration:Command Panels

    これでFireworksを再起動したときに新しいパネルが追加されます。ウィンドウ/ActionScriptを選択してこの新しいパネルを開きます(図4を参照)。このパネルでは、現在使用中のツールを一覧表示し、ドキュメントを開いたときまたは閉じたときに常に警告メッセージを表示します。

    現在使用中のツールを示すActionScriptパネル

    図4. 現在使用中のツールを示すActionScriptパネル

  • ActionScript.fla: このFlash CS3 ProfessionalファイルにはFireworksパネルのソースコードが含まれています。このファイルにはFireworksイベントのキャプチャおよび処理方法が記述されています。

Creative Commons License
この記事は、Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported Licenseのもと提供しています。

著者について

Mayur MundadaはAdobe SystemsのFireworksチームで働いています。仕事を離れたときは、友人や家族と時を過ごすことを大切にしています。