1

我有一个带有外部 javascript 接口的 Flash 播放器:reloadData() 我在编辑页面上的信息时通过 Javascript 调用该函数 - 基本上是为了使页面上的数据和播放器中的数据保持同步。

当播放器在本地托管时,reloadData() 函数可以正常工作。当我们将其移至 CDN (Amazon Cloudfront) 时,播放器加载成功,但外部 javascript 界面不再工作 - console.log(player) 显示以下内容:

<object type=​"application/​x-shockwave-flash" data=​"[our_cloudfront_url].swf" width=​"920" height=​"404" id=​"player" style=​"visibility:​ visible;​ ">​

Uncaught TypeError: Object #<an HTMLObjectElement> has no method 'reloadData'

我知道在使用 CDN 上的项目时有很多不同的行为,但我想知道是否有人遇到过类似的问题并找到了解决方法。

哦,是的...我们使用 CNAME 指向云端分发 (buildid.ourdomain.net => distributionid.cloudfront.net)

4

1 回答 1

1

好吧,我们解决了这个问题。有两件事是必要的:

  1. 在嵌入 swf 时的页面上:allowScriptAccess="always"

  2. 在 swf 本身中: System.security.allowDomain("ourdomain.com")

我想这有点明显,但我想我会把它贴在这里,以防其他一些像我这样的可怜的失落灵魂也有同样的问题。

于 2010-10-12T00:19:23.270 回答