1.as和js通訊執行個體
如果as3調用JAVAscript 中的函數直接在as中添加
if (ExternalInterface.available) {
ExternalInterface.call("sendToJavaScript",value);
}
ExternalInterface.available主要判斷播放器是否位於提供外部介面的容器中,如果swf在不在網頁中, ExternalInterface.call向外部api傳遞參數
sendToJavaScript 就是js中的函數名(自訂) value 是你穿過來變數或值
結下來你可以試著在網頁中添加一個
<script type="text/javascript">
function sendToJavaScript(value){
alert(value)
}
</script >這樣flash中的value就會以alert彈出 這隻是實現了第一步 ,當然做的時候建議用try拋出錯誤在測試
2.js和as通訊執行個體
在網頁中寫入
<script type="text/javascript">
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}//判斷瀏覽器
function sendToActionScript(value) {
thisMovie("flash動畫名稱").sendToActionScript(value);
}
</script>
<form name="form1">
<input type="text" name="input" value="" />
<input type="button" value="Send" /><br />
</form>
注意flash動畫名稱 包括網頁中flash在objct 中id也必須是flash的名稱 王成了網頁接下來看as3
if (ExternalInterface.available) {
try {
ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
} catch (e:Error) {
trace(e.message)}
} else {
trace("External interface is not available for this container.");
}//End if
注意的是我們在做開發的時候可能直接在結束遊戲過程中發送個請求掉用js js處理請求在返回個結果 這樣其實flash讀不出來 當然你可以做一個按鈕請求 肯能as事件機制問題,
還有就是 thisMovie("flash動畫名稱").sendToActionScript(value); 不能寫在上面的 sendToJavaScript(value)的後面必須單獨寫個函數,然後調用這個函數