您的位置:首页 > Web前端 > JavaScript

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

2015-07-31 10:58 453 查看

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)
{}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: