这里我们用最简单的代码来演示如何在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代码:
<?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>
本文介绍了一种使用AS3代码调用HTML页面中JavaScript函数的方法。通过示例展示了如何设置MXML界面元素,包括按钮点击事件和文本输入框,并在点击事件触发时将文本框内容传递给JavaScript进行处理。

被折叠的 条评论
为什么被折叠?



