1

我想使用动作脚本在我的 html 中获取 FlashVars,

< OBJECT >html中的标签如:

            <!--[if !IE]>-->
            <object type="application/x-shockwave-flash" data="test.swf" width="550" height="400">
                <param name="movie" value="test.swf" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="#ffffff" />
                <param name="play" value="true" />
                <param name="loop" value="true" />
                <param name="wmode" value="window" />
                <param name="scale" value="showall" />
                <param name="menu" value="true" />
                <param name="devicefont" value="false" />
                <param name="salign" value="" />
                <param name="allowScriptAccess" value="sameDomain" />
                <param name="FlashVars" value="acc=3001&pwd=test">
            <!--<![endif]-->
                <a href="http://www.adobe.com/go/getflash">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" />
                </a>
            <!--[if !IE]>-->
            </object>
            <!--<![endif]-->

并且我的动作脚本用作mxml使用的flex中的模型,所以我没有movieclip或者我不能使用this.loaderInfo.parameters; 或者root因为没有displayObject。

是否有其他方法可以获取 as3 中的 FlashVars 值,

或者我可以在 mxml 中获取 FlashVars,然后让 as3 获取变量,例如:

var paramObj:Object = Application(FlexGlobals.topLevelApplication).parameters;
var test:String;
test = paramObj['acc'];

在 as3 中:

var getText:String = test;

提前致谢。

4

2 回答 2

1

由于 topLevelApplication 是静态类型,因此您可以在应用程序的任何位置访问 FlexGlobals,它甚至可以在 AS 文件中。因此,您可以在 AS 文件本身中执行此操作,而不是在 MXML 文件中执行此操作

于 2013-10-16T17:47:33.367 回答
0

Application.application.parameters终于用了!奇怪的是我使用 Flex 4.6 SDK 但我的 Flex 版本是 2,所以我不能使用 FlexGlobals。结果类似于使用 FlexGlobals:

在您的 html 中:

<script type="text/javascript">
            // For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. 
            var swfVersionStr = "11.1.0";
            // To use express install, set to playerProductInstall.swf, otherwise the empty string. 
            var xiSwfUrlStr = "playerProductInstall.swf";
            var flashvars = {};
            var params = {};
            params.quality = "high";
            params.bgcolor = "#ffffff";
            params.allowscriptaccess = "sameDomain";
            params.allowfullscreen = "true";
            params.FlashVars = "acc=3001&pwd=test";

import mx.core.Application;

然后使用 actionscript 或 mxml 中的代码:

Application.application.parameters.acc;

以上结果将为3001。

我也尝试添加<param name="acc=3001&pwd=test">,但动作脚本无法理解它(结果未定义),但我不知道为什么。

于 2013-10-17T09:11:36.827 回答