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 播放器不允许脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用动作脚本控制 Flash 中的 FLV 播放?

Aliplayer视频点播加密播放

用 js/jquery 检测 Flash 播放器的现代或不推荐的方法?

如何在 Flash 中创建一个音乐播放器来创建音频文件的波形?

HTML5播放器视频显示不完整!FLASH播放器正常显示!

Flex 3和Flash播放器缓存