ActionScript 3.0、Fireworks DOM、またFireworksでのJavaScriptを使用した作業についての基礎知識を持っていることが推奨されます。ActionScript 2.0を使用したカスタムパネルの作成方法についてさらに詳しくは、Trevor McCauleyによる次の記事を参照してください。
上級
カスタムパネルは、Fireworksを拡張して新機能をツールに導入したり、ワークフローをチームの手順に導入できる機能の1つです。Flash CS3 Professionalでカスタムパネルを作成または修正して、Fireworks CS3で使用するためのSWFファイルとしてエクスポートします。ActionScript 2.0またはActionScript 3.0を使用してこれらのパネルを拡張しFireworksイベントを処理することができます。
この記事では、ActionScript 3.0を使用したカスタムパネルでのFireworksイベントの処理について重点的に説明します。
Fireworksでイベントが生成されると、FireworksはActionScript 3.0 SWFファイルのIsFwCallbackInstalled関数を呼び出し、イベント処理コードがカスタムパネルで記述されたものであるかどうか確認します。関数がtrueを返すと、Fireworksはまずカスタムパネルで記述されたイベントコードを実行してから、Fireworksのイベント処理コードを実行します。図1はFireworksイベントの制御フローを示しています。
Trevorの「Creating Fireworks panels」のパート2シリーズでは、Fireworksによって生成されたすべてのイベント*を含むテーブルを示しています。Fireworks CS3で発生したこれらのイベントをActionScript 3.0で利用するには、カスタムパネルに次の2つの関数を記述する必要があります。
次の例では、開いているまたは閉じている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;
}
onFwDocumentOpenおよびOnFwDocumentCloseのイベントに対するイベントハンドラを示しています。ドキュメントを開いたとき(図2を参照)または閉じたとき(図3を参照)は常に警告メッセージが表示されます。function OpenDoc()
{
MMExecute('alert("Opening Document");');
}
function CloseDoc ()
{
MMExecute('alert("Closing Document");');
}
Fireworksが呼び出す、ActionScript 3.0で記述されたすべての関数を登録する必要があります。Fireworksでは、登録されていない関数をカスタムパネルで呼び出すことはできません。関数を登録するには、次のコード行を関数に追加します。
ExternalInterface.addCallback("<alias name>",<function name>);
ここで、
例えば、IsFwCallbackInstalledを登録するには、次のコード行を追加する必要があります。
ExternalInterface.addCallback("IsFwCallbackInstalled",IsFwCallbackInstalled);
同様に、OpenDocおよびCloseDocを登録するには、次のコード行をそれぞれ追加する必要があります。
ExternalInterface.addCallback("onFwDocumentOpen",OpenDoc);
ExternalInterface.addCallback("onFwDocumentClose",CloseDoc);
イベントを処理するActionScript 3.0の関数は、その関数とIsFwCallbackInstalledが登録された場合、またイベントが生成されたときにIsFwCallbackInstalledがtrueを返した場合にのみFireworksで実行されます。
この記事に付属のサンプルファイル(fw_events_as3.zip)には次の2つのファイルが含まれます。
これでFireworksを再起動したときに新しいパネルが追加されます。ウィンドウ/ActionScriptを選択してこの新しいパネルを開きます(図4を参照)。このパネルでは、現在使用中のツールを一覧表示し、ドキュメントを開いたときまたは閉じたときに常に警告メッセージを表示します。
Tutorials & Samples |
Fireworks Forum |
More |
| 12/16/2008 | Disappearing Mouse Cursor? |
|---|---|
| 01/13/2012 | Survey: Blend mode options in Brush tool? |
| 01/25/2012 | after a update of cs3 to 9.0.1 styles are broken |
| 08/15/2011 | CS5 plagued with many bugs in Lion |
Fireworks Cookbooks |
More |
| 09/07/2011 | How do I use FXG XML markup in Shape subclasses? |
|---|---|
| 10/15/2010 | Flex4 Dotted Line |
| 06/25/2010 | ComboBox that uses a NativeMenu (Air API) |
| 05/21/2010 | Localizing a Creative Suite 5 extension |