Wednesday, August 08, 2007

ExternalInterface 跨 domain 問題

紀錄這兩天遇到的 swf 使用問題。

當網頁中的 JavaScript 與 swf 分別來自不同的 web server (即跨 domain) 而又有互相溝通的動作時 (透過 ExternalInterface),會發生無發溝通的狀況。

這問題是因為 Flash player 的 security 設定所產生的。預設的 JavaScript access 是必須要同 domain 才行。

解決的方法如下:

1) 在 ActionScript code 中加入這行
System.security.allowDomain("*");

2) 在 HTML 中載入 swf 的部份,也就是 object 或是 embed tag 的地方,加入 param allowScriptAccess="always".

No comments: