首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SoundManager2 SWF加载问题

SoundManager2 SWF加载问题
EN

Stack Overflow用户
提问于 2012-05-09 23:59:45
回答 2查看 1.6K关注 0票数 0

正在尝试从CDN加载SoundManager2的SWF文件。我想我遇到了跨域闪存的问题。有人这么做过吗?这是可能的吗?

这就是我正在尝试的..。

代码语言:javascript
复制
var allowxdomainscripting = true;
var xdomain = "*";
soundManager.url = 'http://cdn.mycompany.com/inc/soundmanager2.swf';

在文档中有一个非常模糊的引用,但它相当模糊...

http://www.schillmania.com/projects/soundmanager2/doc/generated/src/SoundManager2_AS3.html

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2012-06-05 06:01:49

我也曾经遇到过这个问题。SoundManager2现在提供了swf文件的跨域版本。

它们被压缩到swf/soundmanager2_flash_xdomain.zip中

https://github.com/scottschiller/SoundManager2/tree/master/swf

只需解压缩并替换为SoundManager2提供的标准.swf文件,问题就会迎刃而解。

票数 3
EN

Stack Overflow用户

发布于 2013-05-31 04:53:44

非常感谢!

在浪费了几个小时试图让SM2 SWF embed工作后,我偶然发现了这个答案。

我打算“恢复”这个来添加一些关键字,这样Google就可以索引这个答案了……也许下一个尝试在跨域环境中嵌入SoundManager2 SWF的人会比我更快地完成:)

我在闪存初始化时遇到的错误是:在NPObject上调用方法时出现错误

在JS方面,这是破坏一切的代码:

代码语言:javascript
复制
// attempt to talk to Flash
flash._externalInterfaceTest(false);     <- KABOOM!

NPObject错误可能有多种含义,但通常(在我们的环境中)它意味着:您试图通过JS在不同域上托管的flash电影上调用ExternalInterface。

过了一段时间,我打开SoundManager2 ActionScript 3代码,看到了以下内容:

代码语言:javascript
复制
public var allow_xdomain_scripting:Boolean = false;
public var xdomain:String = "*";

[... other stuff ...]

if (allow_xdomain_scripting && xdomain) {
    Security.allowDomain(xdomain);
    version_as += ' - cross-domain enabled';
}

当然,这意味着您可能正在使用的电影(无论是否为debug )将无法从不同的域( CDN或其他任何域)访问。

解决方案是@amlutz160的answer-中声明的闪存,以使用swf/soundmanager2flashxdomain.zip中包含的文件,这些文件是用allow_xdomain_scripting =-as编译的。

张贴这是相当尴尬的,解决方案是显而易见的,但我失去了相当多的时间与这个和AFAIK的神秘压缩文件的内容没有任何地方记录(我找到一个tangential mention on SM2 forums)。

PS:我将这个答案转发给Scott Schiller,也许他可以稍微更新一下SoundManager2文档:P

致以问候!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10519739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档