この情報は、米国アドビシステムズ社が提供している情報をもとにローカライズし、作成したものです。  

日本語環境での動作保証はしておりませんのでご了承ください。

内容 (What's Covered)

ブラウザーが HTML を読み込む際、OBJECT タグに含まれる FlashVars パラメーターによって SWF ファイルのトップレベルに変数が送られます。OBJECT タグは、HTML pページに SWF を追加する際に使用します。EMBED タグも同様の用途ですが、現在では余り使われておりません。

OBJECT タグの基本的な使用方法については、文書番号 cpsid_92892 OBJECT タグの記述について(Flash Professional)を参照してください。

 注意 : FlashVars 機能は Flash Player 6 以降で使用することができます。

A. FlashVars を使用した変数の受け渡し

FlashVars というオプションのパラメーターを使用して、SWF ファイルのルートレベルに変数を渡すことができます。FlashVars は OBJECT タグまたは EMBED タグ内に含めます。すべての変数は、SWF ファイルの先頭フレームが表示される前に渡されます。

渡すことのできる変数の数に制限はなく、また変数の名前も自由に指定できますが、すべてのブラウザーに共通して、FlashVars に使用する文字列のデータサイズには 64KB(65535 byte)の上限があります。

FlashVars プロパティの書式は name=value という名前と値の組み合わせで、複数使用する場合は & でつなげます。

% に続けて 2 桁の 16 進数を記述することにより、特殊文字や非表示文字を値に含めることができます。半角スペースは + 記号で指定できます。

以下のコードは、myVariable (値は Hello World)と mySecondVariable(値は Goodbye)という 2 つの変数を渡すサンプルです。

OBJECT タグのサンプル

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="myFlashMovie" align="middle">

<param name="movie" value="myFlashMovie.swf" />

<param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />

<!--[if !IE]>-->

<object type="application/x-shockwave-flash" data="myFlashMovie.swf" width="550" height="400">

<param name="movie" value="myFlashMovie.swf" />

<param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" />

<!--<![endif]-->

<a href="http://www.adobe.com/go/getflash">

<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />

</a>

<!--[if !IE]>-->

</object>

<!--<![endif]-->

</object>

EMBED タグのサンプル

EMBED タグでも SWF ファイルを HTML に追加することはできますが、現在では余り使われておりません。

<embed src="myFlashMovie.swf" 

    quality="high" 

    bgcolor="#ffffff" 

    width="550" 

    height="400" 

    name="myFlashMovie" 

    FlashVars="myVariable=Hello%20World&mySecondVariable=Goodbye"

    align="middle" 

    allowScriptAccess="sameDomain" 

    allowFullScreen="false" 

    type="application/x-shockwave-flash" 

    pluginspage="http://www.adobe.com/go/getflash" 

/>

FlashVars で使用された文字列は、HTML コードの文字列と同様にエンコードされます。Windows 版 Internet Explorer は UTF-16 に準拠してエンコードを行い、その他のブラウザーは UTF-8 に準拠しています。

B. ActionScript 3.0 で変数にアクセスする

HTML から SWF に変数が渡されると、SWF は渡された変数を使用できるようになります。

ActionScript 3.0 の LoaderInfo オブジェクトを使用して、FlashVars にアクセスします。

簡単なサンプル

以下のコードは、FlashVars パラメーターを使用して SWF ファイルに渡された myVariable という変数を取得するために、Loaderinfo オブジェクトにアクセスするサンプルです。取得した変数の値は、ステージ上に配置されたテキストフィールドの文字列として使用しています。

// by querying the LoaderInfo object, set the value of paramObj to the 

// to the value of the variable named myVariable passed from FlashVArs in the HTML

var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.myVariable;



// set the text of the text instance named text1. Use the toString() method

// to convert the value from an object to a string so it can be used in the text field

text1.text = paramObj.toString()

高度なサンプル

  • ステージ上に TextField インスタンスを生成(tf)
  • LoaderInfo オブジェクトを使用して FlashVars パラメーターの変数を取得
  • for ... in ループを使用して渡された変数をそれぞれ個別に取得
  • 変数名と値をテキストフィールドに表示
// AS3

var tf:TextField = new TextField();       // create a TextField names tf

tf.autoSize = TextFieldAutoSize.LEFT;

tf.border = true;

addChild(tf);                             // add the TextField to the DisplayList so that it appears on the Stage



tf.appendText("params:" + "\n");

try 

{

    var keyStr:String;

    var valueStr:String;

    var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;   //set the paramObj variable to the parameters property of the LoaderInfo object

    for (keyStr in paramObj) 

    {

        valueStr = String(paramObj[keyStr]);

        tf.appendText("\t" + keyStr + ":\t" + valueStr + "\n");  // add each variable name and value to the TextField named tf

    }





catch (error:Error) 

{

    tf.appendText(error.toString());

}

C. ActionScript 2.0 で変数にアクセスする

ActionScript 2.0 の場合、SWF ファイル内で宣言されているかのように、FlashVars 変数に直接アクセスすることができます。

以下のコードは、text1 というダイナミックテキストインスタンスのテキストプロパティに、myVariable 変数の値を使用するサンプルです。

// AS2

text1.text = myVariable;

追加情報 (Additional Information)

OBJECT/EMBED タグ内に記述される SWF の URL に変数を追加して渡すことも可能です。URL に追加される情報はクエリ文字列と呼ばれます。SWF ファイルの読み込み時に変数が必要な処理を行う場合、この方法には制限があります。この方法を使用する場合、大量のデータがサーバーからリクエストされる前に、SWF ファイルをダウンロードして再生する必要があります。

アドビコミュニティフォーラムをご利用下さい

この文章はお役に立てましたでしょうか?さらに情報をお探しになる場合には、アドビスタッフがお届けしている解決事例やメンバー同士での活発な意見交換をチェックできるコミュニティフォーラムをご利用下さい。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー