这里我们用最简单的代码来演示如何在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
>
MXML代码:

















AS3代码:



























HTML中的JavaScript代码:









