我有一部用于多个网站的flash电影。在每个站点上,我想在标记内指定一个不同的XML文件。如何获取该字符串并在ActionScript中使用它?
在标记中我想这样做:
<object ...
<param name=FlashVars value="urlXML=myXML.xml" />
</object>
在actionscript 3.0中,我试图这样做:
var urlXML=_root.urlXML;
目前,当我这样做时,输出中的错误是“访问未定义的属性......”我该如何抓住该字符串?
答案 0 :(得分:1)
这不是您在AS3中访问FlashVars的方式。您需要root loaderInfo的参数属性,该属性包含已添加的任何FlashVar。
var urlXML: String = root.loaderInfo.parameters.urlXML;
答案 1 :(得分:0)
注意:Adobe KB article
必须在OBJECT和EMBED标签中分配FlashVars才能在所有浏览器上运行。
答案 2 :(得分:0)
我的第一反应......所以这里:
我有一个为麦吉尔大学校友开发的小型视频播放器应用程序。 你可以在这里看到它: http://www.alumni.mcgill.ca/esol/holiday/2008/flash.php?giftCode=123456 它从URL中获取“礼品代码”,但您始终可以对.xml文件进行硬编码。
以下是我使用的对象和嵌入:
<embed src="mcgill_annual_fund200903.swf**?giftCode=<?php echo $giftCode; ?>**" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="680" height="550"></embed>
使用.js嵌入脚本:
<script type="text/javascript">
AC_FL_RunContent('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','680','height','550','src','mcgill_annual_fund200903 **?giftCode = **','quality ','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','mcgill_annual_fund200903?giftCode =','wmode','transparent'); //结束AC代码
然后在AS3中检索信息:
//get the giftCode
var gCode:String;
var giftCode:String;
function loaderComplete(lEvent:Event){
gCode = loaderInfo.loaderURL;
giftCode = gCode.substr((gCode.indexOf("?giftCode=")+10));
//giftCodeTxt.text= giftCode;
}
答案 3 :(得分:-1)
它应该就在那里 - 你不需要_root。请参阅this。