flashVars の使用

ラッパーの <object> および <embed> タグの flashVars プロパティを使用して、Flex アプリケーションに変数を渡すことができます。

次の例では、単純なラッパー内の <object> タグ内部で firstnamemiddlename、および lastname flashVars プロパティの値を設定します。

<html>
<head>
<title>/flex2/code/wrapper/SimplestFlashVarTestWrapper.html</title>
<style>
body { margin: 0px;
 overflow:hidden }
</style>
</head>
<body scroll='no'>
<table width='100%' height='100%' cellspacing='0' cellpadding='0'><tr><td valign='top'>

<h1>Simplest FlashVarTest Wrapper</h1>

    <object id='mySwf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'>
        <param name='src' value='FlashVarTest.swf'/>
        <param name='flashVars' value='firstName=Nick&lastName=Danger'/>
        <embed name='mySwf' src='FlashVarTest.swf' pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' height='100%' width='100%' flashVars='firstName=Nick&lastName=Danger'/>
    </object>

</td></tr></table>
</body>
</html>

Flex データサービスによって生成されたラッパー、または"/resources/html-templates" ディレクトリに含まれるラッパーを使用している場合、実際のラッパーが同じように見えないことがありますが、flashVars 変数に渡す基本的な方法は同じです。たとえば、次の例に示すように、flashVars 変数を関数パラメータに追加することにより、挿入することができます。

"flashvars","historyUrl=%2Fflex%2Fflex%2Dinternal%3Faction%3Dhistory%5Fhtml&lconid=" + lc_id + "&firstName=Nick&lastName=Danger",

flashVars 変数の値は必ずしも静的である必要はありません。たとえば JSP を使用してラッパーを返す場合は、flashVars 変数の値に、ストリングとして評価可能な任意の JSP 式を使用できます。

次の例では、HttpServletRequest オブジェクトに保存された値を使用します (この場合は、フォームまたはクエリ文字列パラメータを使用できます)。

<html>
<head>
<title>/flex2/code/wrapper/DynamicFlashVarTestWrapper.jsp</title>
<style>
body { margin: 0px;
 overflow:hidden }
</style>
</head>

<%
    String fName = (String) request.getParameter("firstname");
    String mName = (String) request.getParameter("middlename");
    String lName = (String) request.getParameter("lastname");
%>

<body scroll='no'>
<table width='100%' height='100%' cellspacing='0' cellpadding='0'><tr><td valign='top'>

<script>
<h1>Dynamic FlashVarTest Wrapper</h1>
</script>


    <object id='mySwf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'>
        <param name='src' value='../assets/FlashVarTest.swf'/>
        <param name='flashVars' value='firstname=<%= fName %>&lastname=<%= lName %>'/>
        <embed name='mySwf' src='../assets/FlashVarTest.swf' pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' height='100%' width='100%' flashVars='firstname=<%= fName %>&lastname=<%= lName %>'/>
    </object>

</td></tr></table>
</body>
</html>

Flex 2.01