Flash 播放器不允许脚本
Posted
技术标签:
【中文标题】Flash 播放器不允许脚本【英文标题】:Flash player doesn't allow script 【发布时间】:2011-09-23 14:40:42 【问题描述】:我对 Flash 和 ActionScript 有点陌生,我认为我一直存在安全问题。
问题是这样的。我尝试使用 ActionScript 2.0 中的按钮代码(我必须使用 2.0)
on(rollOver)
getURL("javascript:someFunction();","_self");
这段代码应该可以工作,它对其他人也有效 =)
在你说我把它放在错误的地方之前。我把它放在按钮上。此外,当我使用 CTRL + ENTER 在 Flash CS5 中尝试该电影时,它确实可以正常工作。但是当我嵌入我的 .swf 时,我会收到类似的消息
the aplication is trying to access page...see parameters for flash player
抱歉翻译不好。
我也试过这个代码:
on(rollOver)
getURL("http://www.something.com","_self");
它成功了。
嵌入代码:
<object >
<PARAM NAME="quality" VALUE="high">
<PARAM NAME="wmode" VALUE="opaque" >
<PARAM name="AllowScriptAccess" VALUE="always" >
<EMBED src="small.swf" wmode="opaque" quality="high" AllowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">
</EMBED>
<noembed></noembed>
</OBJECT>
我应该补充一点,我对 swf 文件的托管位置或类似情况没有任何权力。这真的不是我的 swf 文件。我所能做的就是通过 JAVASCRIPT 操作它,为此,我需要让确切的代码工作。
【问题讨论】:
您的服务器上需要一个 crossdomain.xml 文件,以允许 Flash 脚本访问 www.something.com。 Flash 具有默认的同源安全策略,并且在通过该 .xml 文件明确允许之前不会与“其他”服务器通信。 哦,但它确实访问了 something.com/ 它没有访问 javascript:alert("hello world"); 【参考方案1】:如果您想从 ActionScript 代码调用 JavaScript 函数。您可以使用 ActionScript 中提供的 ExternalInterface API。请查看 Flash 帮助,您将找到正确的 ExternalInterface 代码示例。
【讨论】:
【参考方案2】:我认为问题与http://board.flashkit.com/board/archive/index.php/t-652586.html类似
据我所知,只有从本地文件夹加载 SWF 时才会出现问题。尝试将其放在网络服务器上,跨域问题应该会消失。
【讨论】:
这有效 =) 谢谢...我现在会尝试进一步调查,尝试了解原因以上是关于Flash 播放器不允许脚本的主要内容,如果未能解决你的问题,请参考以下文章
用 js/jquery 检测 Flash 播放器的现代或不推荐的方法?