JavaScript中跨域調用Flash的方法,javascriptflash
要做一個頁面上簡訊息的提示音的功能,本來想用HTML5中Audio+IE下的bgsound來實現,可是發現每種瀏覽器對Audio的解碼類型還不一樣,頓時有種崩潰的感覺。沒辦法還是用Flash穩妥一點吧。
相信JavaScript與Flash互動大家都會有所接觸或者有所耳聞。其實我也是第一次整這個玩意。具體的方法就不說了,很多資料。
開始的時候功能都做得差不多了,實現和沒問題。可是就是到了最後,將swf檔案放到資源服務上後再調用時出來問題,我就想肯定又是讓人蛋疼的跨域問題(CrossDomain)。後來在網上翻了半天終於把問題搞定。
首先,要讓你的Flash能訪問頁面,你需要在<embed>標籤中加上allowscriptaccess=always這段。
其次,你要讓你的頁面中的JavaScript能訪問Flash則需要在你的Flash指令碼中加上如下內容:
複製代碼 代碼如下:
import flash.system.Security;
Security.allowDomain('www.jb51.net');
其中www.jb51.net需要替換成你自己的頁面的domain,如果你不是很清楚你可以使用alert(document.domain)來查看。如果你需要多個domain都訪問這個Flash你可以添加多條allowDomain的記錄。
javascript 跨域調用js檔案問題
現在的問題是,如何在Left中調用Top中的javascript方法,或者是用什麼方法在當然可以,請前提條件是這幾個檔案不能跨域,就是要在一個網域名稱下,否則JS
javascript 調用 falsh 裡面的一個方法,該怎調用 as 20 版本的
3.0裡面是調用ExternalInterface.addCallback(外部存取名稱字串,內建函式)
然後在js裡拿到這個flash的引用,調用那個外部存取名稱就好了