Flex 与 js 的交互
在html页面中的js脚本
<script language="JavaScript" type="text/javascript">
var me; //存储flash对象
function getID(swfID){
if(navigator.appName.indexOf("Microsoft")>-1){
me=window[swfID];
}else{
me=document[swfID];
}
}
function giveValueToFlash(val){
me.setValue(val); //调用flex的函数
}
function alertflex(val){ //被flex调用的js函数
alert(val);
return "call js from flex";
}
</script>
MXML文件里面的as脚本
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private function init():void
{
ExternalInterface.addCallback("setValue",setTextValue); //setValue是暴露给js的函数名称,第二个参数是as里面的函数名称 setTextValue, 建立映射关系。
}
private function setTextValue(val:String):void{
txt.text=val;
}
private function onclick():void
{
var results:Object = ExternalInterface.call("alertflex","hello i am flex"); //调用js里面的alertflex函数,第二个参数是传给js函数的参数。
mx.controls.Alert.show(results.toString());
}
]]>
</mx:Script>