這裡我們用最簡單的代碼來示範如何在AS3代碼中調用宿主HTML中的JavaScript代碼
MXML代碼:<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"
creationComplete="onCreationComplete()">
<mx:Script source="ExternalInterfaceASJS.as" />
<mx:Canvas width="100%" height="100%">
<mx:Panel x="0" y="0" height="100" width="500" title="ExternalInterface : ActionScript to JavaScript">
<mx:Canvas height="100%" width="100%">
<mx:Button x="346" y="11" label="發送資訊給JavaScript" id="submitButton"/>
<mx:TextInput x="5" y="11" width="334" id="tInput" />
</mx:Canvas>
</mx:Panel>
</mx:Canvas>
</mx:Application>
AS3代碼:
import flash.events.MouseEvent;
import flash.external.ExternalInterface;
import flash.system.Security;
private function onCreationComplete():void
...{
Security.allowDomain("*"); submitButton.addEventListener("click", onSubmitClick);
}
private function onSubmitClick(event:MouseEvent):void
...{
//確認下ExternalInterface的available屬性是否為true
//如果運行在獨立版的Flash播放器中,則該屬性返回false
if(ExternalInterface.available)
...{
var s:String = tInput.text;
//調用JavaScript函數
ExternalInterface.call("displayString", s);
}
}
HTML中的JavaScript代碼:<script language="JavaScript">
//this function will be called by flash
function displayString(s)
...{
alert("From Flash : " + s);
}
</script>