【问题标题】:as3 get FlashVars in flex 4as3 在 flex 4 中获取 FlashVars
【发布时间】:2013-10-16 11:09:53
【问题描述】:

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

html 中的< OBJECT > 标签如下:

            <!--[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]-->

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

还有其他方法可以获取as3中的FlashVars值吗,

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

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

在 as3 中:

var getText:String = test;

提前致谢。

【问题讨论】:

    标签: actionscript-3 apache-flex flex4 flashvars


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我终于用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。

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

      【讨论】:

      • 好的,我也可以使用 !我的错是使用标签
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 2010-10-30
      • 2011-05-02
      • 2011-12-24
      • 1970-01-01
      相关资源
      最近更新 更多