AS3与JS之间的简单自定义参数通讯 - 网站

AS3与JS之间的简单自定义参数通讯

分类:设计 · 发布时间:2022-07-04 14:40 · 阅读:7685

一直没去深入研究下AS3与JS的交互开发也就是SWF在html中的通信,最近出于项目要求被迫投入了,也在这里做个汇总

一直没去深入研究下AS3与JS的交互开发也就是SWF在html中的通信,最近出于项目要求被迫投入了,也在这里做个汇总. 一:HTML中最快速的传值方式 在HTML中插SWF时,可以跟个参数,比如: files/home.swf?id=”21″ 在AS3里可以这样去接收 var id:String=stage.loaderInfo.parameters["id"]; 这种传值方式其实AS2的时候也是这样做的,到AS3时使用parameters 属性替换了AS1.0 和2.0 提供SWF文件参数作为主时间轴的技术,所以我们改用一下AS3的取值方式就行了. 这种方式只能是单边一次性传值,有时候会用得到,但需要与JS相互通信就不行了,还有,只能接收字符串. 二:使用外部通信接口ExternalInterface 这也是AS2时代进化来的,目前公认的最靠谱的通信方式. 使用方法: 1.JS调用AS3的函数 确定JS调用AS3之前,要在AS3中绑定调用函数,也就是说,只有AS3答应给的方法JS才能调用. 使用:ExternalInterface.addCallback(functionName:String, closure:Function):void有两个参数: functionName:String — 容器可用于调用函数的名称。 closure:Function — 要调用的 closure 函数。 这可能是一个独立的函数,或者可能是引用对象实例方法的 closure 方法。通过传递 closure 方法,回调实际上可以定向到特定对象实例的方法。
复制代码
代码如下:
ExternalInterface.addCallback("getASVars",getASFun); private function getASFun(value:String):void { //得到JS传来的值:value }
好了,可以在JS中去调用这个方法了,调用前还要先取得插进HTML的SWF的ID,我们在HTML中不管用什么方式插都可以设置ID 例如先通过id为”mov”来获取对象,再调用上面绑定的方法:
复制代码
代码如下:
function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return window[movieName]; } else { return document[movieName]; } } thisMovie("mov").getASVars(value); 2.AS3调用JS的函数
AS3调JS直接使用call就行了 使用:ExternalInterface.call(functionName:String, … arguments):* 这个方法有两个参数: functionName:String — 要在容器中调用的函数的名称。 … arguments — 传递到容器中的函数的参数。 您可以指定零个或多个参数,参数之间用逗号分隔。 这些参数可以是任何 ActionScript 数据类型。 当调用 JavaScript 函数时,ActionScript 类型自动封装到 JavaScript 类型中;当调用其它某个 ActiveX 容器时,将在请求消息中对参数进行编码。 例如:
复制代码
代码如下:
ExternalInterface.call("setToJS","paramTest"); //在JS中编写这个setToJS的函数 function senToJS(value){ alert(value)//输出:paramTest }
看起来很爽,但也不是完全靠谱,这个接口还是会挑食的,只有在以下浏览器中才支持: 浏览器 操作系统 操作系统 Internet Explorer 5.0 及更高版本 Windows Netscape 8.0 及更高版本 Windows Macintosh Mozilla 1.7.5 及更高版本 Windows Macintosh Firefox 1.0 及更高版本 Windows Macintosh Safari 1.3 及更高版本 Macintosh 还有个安全沙箱的问题,如果出现安全沙箱警报,可以使用以下两种修正方法: 1.在包含 HTML 页中的 SWF 文件的 object 标签中,设置以下参数: 2.在 SWF 文件中,添加以下 ActionScript:
复制代码
代码如下:
Flash.system.Security.allowDomain(sourceDomain)
标签:
AS3 js 自定义 参数 通讯

相关文章

Photoshop为风吹日晒的皮肤美美容制作教程

为了工作,我们要天天顶风冒雨的,本来脸上就坑坑洼洼的,还有点雀斑,再加上自己又不会化妆,拍摄出来的效果一定很“吓人”。“先天不足,后天弥补”,下面我们就来给照片的你美美容。

flex的Socket通讯沙箱和安全策略问题

沙箱和安全策略问题发生在连接时,准确地说是连接前,分别两种情况: 1.本地播放 2.WEB发布

CAD怎么画渐变色花朵的平面图?

CAD怎么画渐变色花朵的平面图?cad中想要画一个花朵并填充渐变色,该怎么绘制这个平面花朵呢?下面我们就来看看详细的教程,需要的朋友可以参考下

flash cs6怎么画简笔画奶牛? flash画奶牛的教程

flash cs6怎么画奶牛简笔画?flash中想要绘制奶牛,该怎么绘制奶牛呢?下面我们就来绘制简笔画奶牛图形的教程,需要的朋友可以进来参考一下

3DMAX渲染不锈钢材质的参数是什么

3DMAX渲染不锈钢材质的参数是什么?在我们做室内外效果图的时候不锈钢材质是我们经常要用的,比如楼梯扶手、厨房里的刀具和锅等。那么有好多人不会在3dmax软件里面调不锈钢材质。

返回分类 返回首页