我希望使用动作脚本
在我的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]-->
我的动作脚本用作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;
提前致谢。
答案 0 :(得分:1)
您可以在应用程序的任何位置访问FlexGlobals,因为topLevelApplication是静态类型,甚至可以在AS文件中。因此,您可以在AS文件本身
中执行此操作,而不是在MXML文件中执行此操作答案 1 :(得分: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">
但是动作脚本无法理解它(结果是未定义的),我不知道为什么会这样。