2010-10-05 40 views
1

我有一個帶有外部JavaScript接口的flash播放器:reloadData()我在頁面上編輯信息時通過Javascript調用該函數 - 基本上保留數據頁面和玩家同步。Flash Player上的外部Javascript接口無法在CDN上工作(Cloudfront)

當玩家在本地託管時,reloadData()函數可以正常工作。當我們將它移動到CDN(亞馬遜的Cloudfront),成功載入播放,但JavaScript接口,不再適用於外部 - 的console.log(播放器)揭示了以下內容:

<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指向CloudFront的分佈(buildid.ourdomain.net => distributionid.cloudfront.net)

+0

附加更新,當allowScriptAccess參數設置爲'always'時,錯誤消息將更改爲:「未捕獲的錯誤:NPObject上的錯誤調用方法!」 – byron 2010-10-05 21:24:20

回答

1

好了,我們想通了這一個了。有兩件事情是必要的:

  1. 在嵌入SWF網頁時:將allowscriptaccess = 「總是」

  2. 在SWF本身:的System.security.allowDomain( 「ourdomain.com」)

我想這很明顯,但我想我會在這裏張貼它,以防其他一些可憐的失去靈魂,如我自己也有同樣的問題。

+0

我在FlowPlayer中遇到了這個問題,它似乎自己執行第1步(添加allowScripAccess參數)。我很不清楚在哪裏添加allowDomain調用 – 2012-01-17 22:24:19

+0

此外,我發現這個相關的線程:http://www.airtightinteractive.com/2006/12/fix-for-cross-domain-externalinterface-unspecified-error/其中有人說Security.allowDomain(「*」)是當前調用allowDomain的方法 – 2012-01-17 22:25:03

相關問題