网页javascript 与flash之间的交互

本文介绍如何构建JS交互接口类,实现与Flash之间的交互,包括注册接口函数、响应外部调用及消息传递。

构建JS交互接口类

package com.Interactive 

{

public class JSInterface
{

public function JSInterface(){

//register javascript function
if (ExternalInterface.available) 
{
try
{
//ExternalInterface.marshallExceptions = true;
timeOutExternallAddBack("sendToFlash",recvFromJS);

}
catch (error:SecurityError)
{
throw new Error("A SecurityError occurred: " + error.message + "\n");
}
catch (error:Error)
{
throw new Error("An Error occurred: " + error.message + "\n");
}
}
else 
{
throw new Error("External interface is not available for this container.");
}

}


public function recvResponseFromFlash(msg:Object):void
{
try
{
timeOutExternallCall("recvResponseFromFlash", msg);

catch(e:Error)
{
throw e;
}
}

public function recvFromJS(msg:Object):void
{

}


/**
* 延时呼叫
* @param func
* @param msg

*/
public function timeOutExternallCall(func:String,msg:Object):void
{
setTimeout(function():void{ExternalInterface.call(func,msg);},500);
// timeOutExternallCall(func,msg);
}
/**
* 延时监听
* @param func
* @param msg

*/
public function timeOutExternallAddBack(func:String,closure:Function):void
{
setTimeout(function():void{ExternalInterface.addCallback(func,closure)},500);
}

}

}


如上:我们注册了recvFromJS接口函数,用于响应外部javascript调用sendToFlash方法。

注册recvResponseFromFlash接口函数,在flash内部使用时,javascript代码中需定义recvResponseFromFlash函数,用于接收flash传递给javascript的消息。


需要使用该交互类时,如下:

var inter:JSInterface = new JSInterface();即可。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值