flash.system パッケージには、SWF ファイルとそのコンテナ間の通信を行うパッケージレベルの関数 fscommand() が含まれます。
パブリック 関数
 関数定義元
  
fscommand(command:String, args:String = ""):void
SWF ファイルが、Flash Player または Flash Player のホストプログラム (Web ブラウザなど) と通信できるようになります。
flash.system
関数の詳細
fscommand()関数
public function fscommand(command:String, args:String = ""):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

SWF ファイルが、Flash Player または Flash Player のホストプログラム (Web ブラウザなど) と通信できるようになります。fscommand() 関数を使用して、Director、または ActiveX コントロールに対応している Visual Basic や 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" になります。

SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含んでいる HTML ページの object タグおよび embed タグの allowNetworking パラメータを設定します。

セキュリティ情報の詳細については、以下を参照してください。

シンタックス 1:fscommand() を使用して Flash Player にメッセージを送るには、定義済みのコマンドとパラメータを使用します。次の表に、fscommand() 関数の command パラメータと args パラメータに指定できる値を示します。これらの値は、プロジェクタを含め、Flash Player で再生する SWF ファイルを制御します。プロジェクタは、Flash Player がなくてもスタンドアローンアプリケーションとして実行可能な形式で保存される SWF ファイルです。

コマンドパラメータ (args)用途
quitNoneプロジェクタを終了します。
fullscreentrue または falsetrue を指定すると、Flash Player はフルスクリーンモードに設定されます。false を指定すると、プレーヤーはノーマルメニュービューになります。
allowscaletrue または falsefalse を指定すると、SWF ファイルは常に元のサイズで表示され、拡大 / 縮小されないようにプレーヤーが設定されます。true を指定すると、SWF ファイルは強制的にプレーヤーのウィンドウサイズに対して 100% に拡大 / 縮小されます。
showmenutrue または falsetrue を指定すると、すべてのコンテキストメニューアイテムが有効になります。false を指定すると、[設定] および [Flash Player について] 以外のすべてのコンテキストメニュー項目が非表示になります。
execアプリケーションへのパス プロジェクタの内部からアプリケーションを実行します。
trapallkeystrue または falsetrue を指定すると、アクセラレータキーを含むすべてのキーイベントが Flash Player の onClipEvent(keyDown/keyUp) ハンドラに送られます。

すべてのアプリケーションで、表に記載されているすべてのコマンドを利用できるわけではありません。

exec コマンドで使用できる文字は、A ~ Z、a ~ z、0 ~ 9、ピリオド (.)、アンダースコア (_) だけです。exec コマンドは、fscommand サブディレクトリでのみ実行されます。つまり、exec コマンドを使ってアプリケーションを呼び出す場合、アプリケーションは fscommand という名前のサブディレクトリ内に存在する必要があります。exec コマンドは、Flash プロジェクタファイル内だけから実行できます。

シンタックス 2:fscommand() を使用して、Web ブラウザの JavaScript などのスクリプト言語にメッセージを送るには、パラメータ commandargs 内に 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 9 では、fscommand() 関数は、呼び出し元 SWF ファイルがローカルファイルシステムのサンドボックスまたはネットワーク接続したローカルのサンドボックスに置かれ、さらに、含まれている HTML ページが信頼されないページとしてサンドボックスに置かれている場合には、使用できません。詳細については、http://www.adobe.com/go/fp9_0_security_jp の Flash Player 9 セキュリティに関するホワイトペーパーを参照してください。

シンタックス 3:fscommand() 関数は、メッセージを Director (アドビ システムズ社の Macromedia Director) に送ることができます。これらのメッセージは、Lingo (Director のスクリプト言語) により、ストリング、イベント、実行可能 Lingo コードのいずれかと解釈されます。メッセージがストリングまたはイベントである場合、fscommand() 関数からメッセージを受信するための Lingo コードを書き、Director 内でアクションを実行する必要があります。詳細については、www.adobe.com/jp/support/director/ の Director サポートセンターを参照してください。

シンタックス 4:ActiveX コントロールに対応した VisualBasic や Visual C++ などのプログラムでは、fscommand() を使って、その環境のプログラミング言語で処理できる 2 つのストリングを含む VB イベントを送信できます。詳細については、www.adobe.com/jp/support/flash/ の Flash サポートセンターで "Flash メソッド" というキーワードを使用して検索してください。

メモ :Flash Player 8 以降用にパブリッシュする場合、ExternalInterface クラスを使用すると、JavaScript と ActionScript (シンタックス 2) との間、または ActionScript と、VisualBasic や Visual C++ などの ActiveX コントロールに対応した他のプログラム (シンタックス 4) との間の通信機能が向上します。fscommand() は、メッセージを Flash Player に送信するため (シンタックス 1) および Director に送信するために (シンタックス 3) 引き続き使用する必要があります。

パラメータ

command:String — ホストアプリケーションに任意の用途で渡されるストリング、または Flash Player に渡されるコマンド。
 
args:String (default = "") — ホストアプリケーションに任意の用途で渡されるストリング、または Flash Player に渡される値。

関連項目




fscommand() を使用して Flash Player をフルスクリーンモードにし、拡大 / 縮小を許可しないようにする方法を示します。オレンジのボックスが draw() を使用してステージに追加されます。draw() では、click イベントリスナーに名前付き clickHandler() が追加されます。これは click イベントに応答して fscommand() の別の呼び出しを使用して Flash Player に終了を指示します。

メモ :この例は、Web ブラウザではなく、スタンドアローン Flash Player で実行する必要があります。

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.system.fscommand;
    import flash.events.MouseEvent;

    public class FSCommandExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 100;

        public function FSCommandExample() {
            fscommand("fullscreen", "true");
            fscommand("allowscale", "false");
            draw();
        }

        private function clickHandler(event:MouseEvent):void {
            fscommand("quit");
            trace("clickHandler");
        }

        private function draw():void {
            var child:Sprite = new Sprite();
            child.graphics.beginFill(bgColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            child.buttonMode = true;
            addEventListener(MouseEvent.CLICK, clickHandler);

            var label:TextField = new TextField();
            label.text = "quit";
            label.selectable = false;
            label.mouseEnabled = false;
            child.addChild(label);

            addChild(child);
        }
    }
}

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/system/package.html