Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 リファレンスガイド > ActionScript 言語エレメント > グローバル関数 > fscommand 関数 | |||
fscommand(command:String, parameters:String) : Void
SWF ファイルが、Flash Player または Flash Player をホスティングするプログラム (Web ブラウザなど) と通信できるようになります。fscommand() 関数を使用して、Macromedia Director、または ActiveX コントロールに対応している Visual Basic (VB) や Visual C++ などのプログラムにメッセージを渡すこともできます。
fscommand() 関数を使用すると、SWF ファイルが Web ページ内のスクリプトと通信できるようになります。ただし、スクリプトへのアクセスは、Web ページの allowScriptAccess 属性の設定により制御されます。この属性は、SWF ファイルが埋め込まれる HTML コード内で設定します。たとえば、Internet Explorer の PARAM タグ内や、Netscape の EMBED タグ内で設定します。allowScriptAccess が "never" に設定されていると、SWF ファイルは Web ページスクリプトにアクセスできません。Flash Player 7 以降では、allowScriptAccess が "always" に設定されていると、SWF ファイルは Web ページスクリプトに常にアクセスできます。allowScriptAccess が "sameDomain" に設定されていると、Web ページと同じドメインに存在する SWF ファイルからのスクリプト実行のみが許可されます。以前のバージョンの Flash Player では、スクリプトの実行が常に許可されていました。HTML ページで allowScriptAccess が指定されていない場合、この属性のデフォルト値は、バージョン 8 以降の SWF ファイルでは "sameDomain" になり、バージョン 7 以前の SWF ファイルでは "always" になります。
シンタックス 1: fscommand() を使用して Flash Player にメッセージを送るには、定義済みのコマンドとパラメータを使用します。次の表に、fscommand() 関数の command パラメータと parameters パラメータに指定できる値を示します。これらの値は、プロジェクタを含め、Flash Player で再生する SWF ファイルを制御します。プロジェクタ は、Flash Player がなくてもスタンドアローンアプリケーションとして実行可能な形式で保存される SWF ファイルです。
|
コマンド |
パラメータ |
用途 |
|---|---|---|
|
|
なし |
プロジェクタを終了します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
アプリケーションへのパス |
プロジェクタの内部からアプリケーションを実行します。 |
|
|
|
|
利用可能なコマンド :
allowscale および exec のみを利用できます。exec コマンドで使用できる文字は、A ~ Z、a ~ z、0 ~ 9、ピリオド (.)、アンダースコア (_) だけです。exec コマンドは、fscommand サブディレクトリでのみ実行されます。つまり、exec コマンドを使ってアプリケーションを呼び出す場合、アプリケーションは fscommand という名前のサブディレクトリ内に存在する必要があります。exec コマンドは、Flash プロジェクタファイル内だけから実行できます。
シンタックス 2: fscommand() を使用して、Web ブラウザ内の JavaScript などのスクリプト言語にメッセージを送るには、パラメータ command および parameters に任意の 2 つのパラメータを渡すことができます。これらのパラメータはストリングと式のいずれでもよく、fscommand() 関数をキャッチする、つまり処理する JavaScript 関数の側で使用されます。
Web ブラウザでは、fscommand() は、SWF ファイルを含む Web ページ内に存在する JavaScript 関数 moviename_DoFScommand を呼び出します。moviename には、EMBED タグの NAME 属性または OBJECT タグの ID プロパティに使用した Flash オブジェクトの名前を指定します。SWF ファイルに myMovie という名前を付けた場合、JavaScript 関数 myMovie_DoFScommand が呼び出されます。
SWF ファイルを含む Web ページでは、allowScriptAccess 属性を設定することで、SWF ファイルによるその Web ページへのアクセスを許可または拒否します。この属性は、SWF ファイルが埋め込まれる HTML コード内で設定します。たとえば、Internet Explorer の PARAM タグ内や、Netscape の EMBED タグ内で設定します。allowScriptAccess が "never" に設定されている場合、送信スクリプトは常に失敗します。allowScriptAccess が "always" に設定されている場合、送信スクリプトは常に成功します。"sameDomain" に設定されている場合は、Web ページと同じドメインに存在する SWF ファイルからのスクリプト実行のみが許可されます。allowScriptAccess が Web ページで指定されていない場合、Flash Player 8 では "sameDomain" がデフォルト値になり、それより前のバージョンでは "always" がデフォルト値になります。
この関数を使用するときは、Flash Player セキュリティモデルを考慮してください。Flash Player 8 では、fscommand() 関数は、呼び出し元 SWF ファイルがローカルファイルシステムのサンドボックスまたはネットワーク接続したローカルのサンドボックスに置かれ、さらに、含まれている HTML ページが信頼されないページとしてサンドボックスに置かれている場合には、使用できません。詳細については、以下を参照してください。
シンタックス 3: fscommand() 関数は、メッセージを Macromedia Director に送ることができます。これらのメッセージは、Lingo (Director のスクリプト言語) により、ストリング、イベント、実行可能 Lingo コードのいずれかと解釈されます。メッセージがストリングまたはイベントである場合、fscommand() 関数からメッセージを受信するための Lingo コードを書き、Director 内でアクションを実行する必要があります。詳細については、www.adobe.com/support/director の Director サポートセンターを参照してください。
シンタックス 4: ActiveX コントロールに対応した VisualBasic や Visual C++ などのプログラムでは、fscommand() を使って、その環境のプログラミング言語で処理できる 2 つのストリングを含む VB イベントを送信できます。詳細については、www.adobe.com/support/flash/ の Flash サポートセンターで "Flash メソッド" というキーワードを使用して検索してください。
注意: Flash Player 8 以降用にパブリッシュする場合、ExternalInterface クラスを使用すると、JavaScript と ActionScript (シンタックス 2) との間、または ActionScript と、VisualBasic や Visual C++ などの ActiveX コントロールに対応した他のプログラム (シンタックス 4) との間の通信機能が向上します。fscommand() は、メッセージを Flash Player に送信するため (シンタックス 1) および Macromedia Director に送信するために (シンタックス 3) 引き続き使用する必要があります。
対応バージョン : ActionScript 1.0、Flash Player 3
command:String - ホストアプリケーションに任意の用途で渡されるストリング、または Flash Player に渡されるコマンド。
parameters:String - ホストアプリケーションに任意の用途で渡されるストリング、または Flash Player に渡される値。
次の例に示す fscommand() は、fullscreen_btn または unfullscreen_btn ボタンを離したときに SWF ファイルをフルスクリーンに拡大するように Flash Player を設定します。
this.fullscreen_btn.onRelease = function() {
fscommand("fullscreen", true);
};
this.unfullscreen_btn.onRelease = function() {
fscommand("fullscreen", false);
};
次の例では、JavaScript のメッセージボックスを HTML ページに表示するために、Flash 内のボタンに fscommand() を設定しています。メッセージ自体は、fscommand パラメータとして JavaScript に送られます。
SWF ファイルを含む Web ページに関数を追加します。この、myDocument _DoFSCommand() 関数は、fscommand() の呼び出しを待ちます。Flash で fscommand() がトリガされると (ユーザーがボタンを押すなど)、command と parameter がストリングとして myDocument _DoFSCommand() 関数に渡されます。渡されたストリングは、JavaScript または VBScript のコードで任意の用途に使用できます。次の例では、関数内にある if ステートメントで、コマンドストリングが "messagebox" であるかどうかを確認します。そうである場合は、JavaScript アラートボックスに fscommand() 関数の parameters ストリングの内容が表示されます。
function myDocument_DoFSCommand(command, args) {
if (command == "messagebox") {
alert(args);
}
}
Flash ドキュメントで、ボタンに fscommand() を追加します。
fscommand("messagebox", "This is a message box called from within Flash.")
次の例に示すように、fscommand() 関数のパラメータでは式を使用することもできます。
fscommand("messagebox", "Hello, " + name + ", welcome to our website!")
SWF ファイルをテストするには、[ファイル]-[パブリッシュプレビュー]-[HTML] を選択します。Flash を使用する SWF ファイルを、[パブリッシュ設定] ダイアログボックスの [HTML] タグを選択して表示される FSCommand テンプレートを使ってパブリッシュすると、myDocument_DoFSCommand() 関数が自動的に挿入されます。SWF ファイルの NAME 属性と ID 属性には、ファイル名が使用されます。たとえば、myDocument.fla というファイルの場合は、属性値として myDocument が設定されます。
ExternalInterface (flash.external.ExternalInterface)
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001177.html