概要

HTML <OBJECT> タグの FlashVars パラメータは、Web ブラウザーにロードするときに、SWF ファイルの最上部に変数を送ります。 <OBJECT> タグは、HTML ページに SWF ファイルを追加するために使用されます。 <EMBED> タグも使用できますが、旧式のタグであり、現在は一般に使用されなくなっています。

<OBJECT> タグの基本的な使用方法については、「OBJECT タグの構文」を参照してください。

メモ:FlashVars 機能には Flash Player 6 以降が必要です。

FlashVars を使用して値を SWF ファイルに渡す

「FlashVars」というオプションパラメーターを使用して、SWF ファイルのルートレベルに変数を渡すことができます。 <OBJECT> タグまたは旧式の <EMBED> タグ内にこのパラメーターを置きます。これらの変数はすべて、ファイルの最初のフレームが再生される前に、SWF ファイルに渡されます。

変数は必要な数だけ、任意の変数名で渡すことができます。すべてのブラウザーで、64 KB(65535 バイト)までの長さの FlashVars 文字列をサポートしています。

FlashVars プロパティのフォーマットは、「&」文字で区切った一連の名前 = 値のペアから成る文字列です。

「%」文字を使用し、これに適切な 2 桁の 16 進数値を続けることで、特殊文字や印刷不可文字を含めることができます。 単一の空白文字は「+」記号を使用して表現できます。URL エンコーディング特殊文字について詳しくは、「URL エンコーディング」(Wikipedia)を参照してください。

次の HTML コード例は 2 つの変数を渡します。 1 番目の変数は、「myVariable」と呼ばれ、「Hello World」の値を保持します。 2 番目の変数は、「mySecondVariable」と呼ばれ、「Goodbye」の値を保持します。

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 タグの記述例

SWF ファイルを Web ページに追加するために <EMBED> タグも使用できますが、旧式のタグであり、現在は一般に使用されなくなっています。

<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" 
/>

ブラウザーは、HTML ページの残りの部分をエンコードする場合と同様に、FlashVars 文字列をエンコードします。 Windows の Internet Explorer では UTF-16 対応のエンコーディングが用意されています。 他のブラウザーでは UTF-8 対応のエンコーディングが用意されています。

SWF ファイルにおける ActionScript 3.0 コード内の変数へのアクセス

HTML から SWF ファイルに変数を渡した後、SWF ファイルはこれらの変数を使用する必要があります。

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

単純な例

下のコード例は、LoaderInfo オブジェクトに照会して、FlashVars パラメーター内の、SWF ファイルに渡された myVariable という変数にアクセスします。 続いて、ステージ上のテキストフィールドのテキストを、変数の文字列値に設定します。

// 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()

上記のコードが使用されている FLA、SWF ファイル、および HTML ファイルのサンプルをダウンロードできます。

詳細な例

下のコード例では次の操作を行います。

  • ステージ上に 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());
}

SWF ファイルにおける ActionScript 2.0 コード内の変数へのアクセス

ActionScript 2.0 では、SWF ファイル自体で宣言されているかのように、FlashVars 変数に直接アクセスできます。

この例では、text1 というダイナミックテキストインスタンスのテキストプロパティを、myVariable という変数の値に設定します。myVariable は、FlashVars パラメーターで宣言されています。

// AS2
text1.text = myVariable;

上記の AS2 コードが使用されている FLA、SWF ファイル、および HTML ファイルのサンプルをダウンロードできます。

その他のテクニック

変数は、OBJECT および EMBED タグ内に指定された SWF ファイルの URL に付加することにより、SWF ファイルに渡すこともできます。 このテクニックでは、URL に付加された追加情報はクエリ文字列と呼ばれます。SWF ファイルがロードされるとすぐに変数が必要になる場合は、この方法には制限があります。 この方法を使用する場合、大量のデータをサーバーからリクエストするには、その前に SWF ファイルをダウンロードして再生しておく必要があります。

キーワード:パス; パラメーター; クエリ文字列; オブジェクト; 埋め込み; tn_16417

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

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