0

我们有一个 Flash 文件,它带有一个 URL 参数,用于在点击时重定向。当它从主域托管并且 SWF 包含在主域的 HTML 中时,重定向可以正常工作。

但是,如果它托管在辅助域上,并且 SWF 包含在来自主域的 HTML 中,则重定向不起作用。我已经向crossdomain.xml主域和辅助域添加了一个文件,认为这可能会有所帮助。crossdomain.xml这两个文件的内容都包含在下面。

我错过了什么?

跨域.xml

<cross-domain-policy>
    <allow-access-from domain="*"/>
</cross-domain-policy>

编辑:这是用于“重定向”的动作脚本。

动作脚本

on (release) {
    getURL(clickTag);
}

clickTag 是我们通过查询字符串传入的参数。

编辑:添加allowScriptAccess="always"到嵌入代码和<param name="allowScriptAccess" value="always" />标签object后,窗口打开,位置转到/undefined. 想法?

编辑:根据要求,这是我们正在使用的实际对象/嵌入代码:

<object type="application/x-shockwave-flash" data="/files/2348.swc" width="300" height="250" class="ad" onclick="ad_click(169);">
<param name="movie" value="/files/2348.swc?clickTAG=http://www.google.com"/> 
<param value="high" name="quality"> 
<param value="#FFFFFF" name="bgcolor"> 
<param value="always" name="allowScriptAccess"> 
<param value="transparent" name="wmode">
</object> 
4

3 回答 3

1

尝试在包含 HTML 的对象和嵌入标签中 设置allowScriptAccess为。always

对于最新版本的 Flash Player,默认值是“sameDomain”,它解释了您当前的行为。


对于您的编辑,获取更多信息可能会有所帮助,但您可能需要使用_rootor访问您的参数_level0,而不是像上面那样直接访问。请参阅 Adob ​​e 的有关此问题的文档_root.


根据您的嵌入代码,我仍然认为值得您花时间研究_root.

您的对象标签有点不标准,因此可能存在一些问题:

  1. 您似乎在这里遇到了 Josh 建议的案例问题:clickTagvsclickTAG
  2. 将参数添加到data属性 URL 是否有帮助?
  3. 也许尝试Adob​​e 建议的标签会有所帮助?
  4. 另外,将文件打包为 SWC 而不是 SWF 有什么意义?

如果您可以控制 SWF,则可以考虑直接使用FlashVars

于 2010-02-15T21:51:12.493 回答
0

也许您可以使用 Javascript 来进行实际的重定向。

例如,从 AS3 代码中,使用 ExternalInterface 调用执行重定向的 JS 函数。

import flash.external.ExternalInterface; var retval:int = ExternalInterface.call("redirect()", "http://the_redirect_url/");

然后在JS中:

function redirect(url) { window.location = url; }

免责声明:尚未测试。;-)

于 2010-02-16T16:58:55.517 回答
0

要回答关于未定义的问题的第二部分 - 点击标签区分大小写,请确保参数和变量匹配大小写,或者您可以添加以下代码段以确保:

on (release) {
   var myCT:String = clickTAG;
   if(myCT == ""){
      myCT = clickTag;
   } 
   if(myCT == ""){
      myCT = clicktag;
   } 
   getURL(myCT, "_blank"); 
}
于 2010-02-16T16:50:53.637 回答