我試圖通過域間的ExternalInterface啓用Javascript和Flash之間的通信。當它與SWF位於同一個域中時,Javascript的效果很好。但是,在一個案例中,HTML駐留在域A中,JavaScript和閃光燈都駐留在域B.我已經做了所有的以下內容:Cross Domain ExternalInterface「NPObject上的錯誤調用方法」
- embed標記有
allowScriptAccess="always"
(和對象有作爲PARAM) - 我的SWF文件的actionscipt有
Security.allowDomain("*")
- 我的SWF還呼籲
Security.allowInsecureDomain("*")
- 兩個域A與域B有一個
/crossdomain.xml
文件,它具有allow-access-from domain="*"
的SWF能夠調用頁面上的JavaScript,但是當我使用JavaScript來調用由ExternalInterface的曝光功能,我得到
Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.]
這是ActionScript 2的這樣ExternalInterface.marshallExceptions
不可用。
您是否加載了多個swf?或者是域A上的swf(帶有HTML)加載域B上的swf? – 2009-06-24 18:10:50
亞歷克斯 - 好點,我沒有提到這一點。來自域B的JavaScript從域B加載SWF,並且該SWF從域B加載第二個SWF。此加載似乎可行,但我無法確定,因爲我無法與SWF交互。 – Josh 2009-06-24 18:14:00