Flash的as3,as2与JS的相互通信终极解密(含演示实例)
Flash提供了ExternalInterface类来负责和JS的交互,基本上的使用方法,在Flash帮助文档中有详细的说明,下边是Flash部分代码
演示实例(flash与js交互)Demo:
Flash提供了ExternalInterface类来负责和JS的交互,基本上的使用方法,在Flash帮助文档中有详细的说明,下边是Flash部分代码:
- //导入包
- import flash.external.*;
- //提供JS访问的函数名
- var _method:String = "_postStr";
- //指定本地函数中this变量的作用域,可设置为null留空
- var e_area:Object = null;
- //AS内部函数名
- var method:Function = postStr;
- //将函数注册到容器列表
- var wasSuccessful:Boolean = ExternalInterface.addCallback (_method, e_area, method);
- //查看注册是否成功
- if (wasSuccessful) {
- txtResult.text = "函数注册成功";
- } else {
- txtResult.text = "函数注册失败,请检查函数是否存在";
- }
- //本地函数,用以供JS调用
- function postStr (txt:String) {
- txttxtResult.text = txt;
- }
- //点击btn时,将txtInput.text的值传给js里的postStr函数
- btn.onPress = function () {
- ExternalInterface.call ("postStr", txtInput.text);
- };
JS的部分:
- <script>
- function postStr(string) {
- /*这部分是jquery的$.ajax代码,有需要的可以看下哈
- $.ajax({
- type:"POST",
- url:"rate.php",
- data:"name="+name,
- success:function(msg,textStatus){
- alert("string form as: \""+string+"\"");
- thisMovie("flash-js")._postStr("\""+string+"\" from js to as");
- return msg;
- }
- });
- */
- alert("string form as: \""+string+"\"");
- //把Flash传过来的值发送回到Flash里的postStr函数
- thisMovie("flash-js")._postStr("\""+string+"\" from js to as");
- }
- //浏览器兼容访问DOM
- function thisMovie(movieName) {
- if (navigator.appName.indexOf("Microsoft") != -1) {
- return window[movieName]
- }
- else {
- return document[movieName]
- }
- }
- </script>
来源:http://nwhy.org/flash-js-externalinterface.html
相关文章:Flash的as3,as2与JS的相互通信终极解密(含演示实例)
ExternalInterface.addCallback()方法,as2 和as3的区别
ExternalInterface.call和addCallback测试
使用externalInterface.addCallback()容易犯的两个错误
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...