这里我们用最简单的代码来演示如何在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>
本文通过一个简单示例展示了如何使用ActionScript 3 (AS3) 调用HTML页面中的JavaScript代码。示例包括了MXML界面布局、AS3逻辑代码以及必要的JavaScript函数。

1万+

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



