将<object>中的html字符串传递给Actionscript </object>

时间:2009-04-16 15:53:07

标签: flash actionscript-3 variables

我有一部用于多个网站的flash电影。在每个站点上,我想在标记内指定一个不同的XML文件。如何获取该字符串并在ActionScript中使用它?

在标记中我想这样做:

<object ...
   <param name=FlashVars value="urlXML=myXML.xml" />
</object>

在actionscript 3.0中,我试图这样做:

var urlXML=_root.urlXML;

目前,当我这样做时,输出中的错误是“访问未定义的属性......”我该如何抓住该字符串?

4 个答案:

答案 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