AS3和JS通信并调用qq空间分享界面

来源:互联网 发布:js写插件 编辑:程序博客网 时间:2024/05/16 09:37

AS3和JS通信并调用QQ分享界面

1.在AS3页面中调用JS

AS3中通过使用ExternalInterface类来和JS进行通信:主要使用方法ExternalInterface.call();

AS3代码片段:
if(ExternalInterface.available){     ExternalInterface.call("share");}
上述代码中的share方法方在某个js文件中:qq.js(该文件需要加载到当前SWF应用环境中才能被AS3调用到)

2.在JS中调用AS3中的方法

首先要在JS访问到AS3的环境SWF:
JS代码片段:
function getSwfInstance(pP) {//获取当前环境中的SWF(方便访问内部的方法)    if (navigator.appName.indexOf("Microsoft") != -1) {        return window[pP];    } else {        return document[pP];    }}
然后就可以在AS3中访问JS想调用的回调函数了
AS3代码片段:
if(ExternalInterface.available){    ExternalInterface.addCallback("refreshUser",function():void{//ExternalInterface类的addCallback函数是JS访问AS3方法         refreshUserShare();    });}
下面在调用qq空间分享界面的例子中会说明上面代码片段中的refreshUser

3.qq空间调用分享界面JS回调

JS完整代码片段:
//获取到SWF环境function getSwfInstance(pP) {    if (navigator.appName.indexOf("Microsoft") != -1) {        return window[pP];    } else {        return document[pP];    }}//AS3中调用JS中的share方法function share() {    fusion2.dialog.sendStory   //qq空间平台分享界面调用函数 (具体可以在qq应用平台对接站了了解)    ({         title :"游戏标题",         img:"图片url",         summary :"游戏描述+地址url",         msg :"分享描述",         button :"进入游戏",         source :"ref=story&act=default",         context:"分享成功",         onShown : function (opt)         {},         onSuccess : function (opt) {             getSwfInstance("GameLoader").refreshUser();//成功分享到QQ空间后访问AS3中的refreshUser函数         },         onCancel : function (opt)         {},         onClose : function (opt)          {}     });}
0 0
原创粉丝点击