as3与页面实时通讯我想各位童鞋也都很常用,方法也有几种,下面也给大家整理下。
一: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)
相关推荐
本主题主要探讨如何使用ActionScript 3.0(AS3)中的ExternalInterface类来实现与C#代码的交互。以下是关于这个主题的详细说明。 首先,Flash是一款由Adobe公司开发的多媒体创作平台,其ActionScript 3.0是用于编程...
uni-app采用Vue.js语法,通过H5层与原生层的通讯机制,实现了跨平台的运行。对于安卓平台,uni-app支持通过自定义插件的方式接入原生功能。在本例中,“UniPlugin-Hello-AS.rar”正是这样一个用于演示如何调用安卓...
在描述中提到“利用AS与JS通讯”,这意味着播放器不仅使用AS处理内部逻辑,还能与JavaScript进行交互,可能用于实现页面上的其他功能或者与服务器进行通信。 3. **FLVPlayback组件**:Flex提供了一个名为...
今天主要学习一下js与flash是如何通讯滴。 1、先学习一下 getURL(url, window, variables) 使用 getURL 语句,可以让指定的浏览器窗口,转向显示指定的URL地址。参数(url)指定要显示WEB页面文档的 URL 地址...
通过深入研究这个示例代码,你可以了解到如何设置客户端参数、如何处理连接事件、如何订阅和发布消息,以及如何定义自定义的回调函数来处理特定事件。这对于开发基于MQTT的应用非常有用。 总结来说,MQTT协议简化了...
- **文件类型**:不仅限于Java源文件,还包括JSP、XML、HTML、JS及AS文件。 - **统一风格**:推荐使用统一的代码样式(Code Style)和格式化(Formatter)设置,可以通过集成开发环境(IDE)进行配置。 #### 四、代码风格...
标题中的“PLC通过HTTP协议JSON方式对接MES系统”指的是使用智能网关IGT-DSER作为媒介,实现可编程逻辑控制器(PLC)与制造执行系统(MES)之间的通信。这种通信方式利用了HTTP协议的POST和GET方法,以及JSON...
3. **国际短信**:与国内短信不同,国际短信需要处理更多的细节,如目标国家的短信网关、不同的国家代码和运营商规则。发送国际短信可能涉及到汇率转换、费用计算,以及不同地区的短信送达限制。 4. **国家代码**:...
12. **高级知识**:利用ExternalInterface与JavaScript交互,JSFL批量处理Fla文件,理解SWF格式以直接操作SWF,以及代码混淆对抗反编译。 13. **算法**:游戏开发中算法至关重要,可以优化效率,解决特定问题,如...
你也需要安装Discord.js库,这是一个允许我们与Discord API交互的JavaScript库。在终端或命令提示符中,使用npm(Node包管理器)安装 Discord.js: ```bash npm install discord.js ``` 项目中的主要文件可能包括`...
【标题】:“[信息办公]凯撒java版SaaS OA协同办公软件 v2.0_saas-oa.zip”指的是一个基于Java技术开发的SaaS(Software as a Service)模式的协同办公软件,版本号为2.0。SaaS是一种云计算服务模型,允许用户通过...
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 ...JS:javascript源文件 JSP:HTML网页,其中包含有对一个Java servlet...
首先,我们要明确博特是基于Node.js构建的,Node.js是一个开放源代码、跨平台的JavaScript运行环境,它让JavaScript可以在服务器端运行,极大地扩展了JavaScript的应用范围。因此,要开始这个项目,你需要确保你的...
agent = str(sys.argv[3]) # 参数3: 企业号中的应用id subject = str(sys.argv[4]) # 参数4: 标题【消息内容的一部分】 content = str(sys.argv[5]) # 参数5: 文本具体内容 corpid = 'CorpID' # CorpID是企业号...