[]微信关系链:LayaAir引擎针对开发数据域使用图集支持介绍

在微信开放数据域里针对文件的加载是有严格的要求限制的,比如图片必须用本地4M包或只能从指定cdn里下载图片。非图片文件是不能在开发数据域加载使用,针对微信的限制在layaair引擎层也做了适配支持,针对一些参数的初始化设置可以实现开放数据域使用图集文件的支持,开发数据域使用文件的约束条件:
1、图集文件需要存在4M本地包;
2、如果图集文件不存在本地包,而是存在cdn上,这时先调用Laya.loader.load方法将文件加载完,然后通过:
__JS__('wx').postMessage({url:url,data:tempData,isLoad:"filedata"});
说明:
url是图集文件的路径;
tempData:是图集文件的json数据;
isLoad:为filedata,这个是固定死的,不能修改
在主域里通过消息透传,把数据从主域透传到开放数据域。
主域初始化微信适配库参数设置:
MiniAdpter.init(true,false);
 
开放数据域微信适配库参数设置:
MiniAdpter.init(true,true);
开发数据域接收主域透传消息处理类:
/**
* 事件派发监听管理类
* author xiaosong
* @date 2017-02-26
*/
public class MsgMgr
{
/**共享画布类型**/
public static var SHAREDRESIZE:String = "sharedresize";
private static var _i:MsgMgr = null;
public function MsgMgr()
{
super();
}
public static function get instance():MsgMgr
{
return _i ||= new MsgMgr();
}

/**初始化消息监听**/
public function init():void
{
//接收主域透传的数据
if(MiniAdpter.isZiYu && MiniAdpter.isPosMsgYu)
{
__JS__('wx').onMessage(function(message:Object):void{
trace(message);
if(message['isLoad'] == "filedata")
{
MiniFileMgr.ziyuFileData[message.url] = message.data;//文本数据
}else if(message['isLoad'] == "filenative")
{
//子域接收主域传递的文件信息
if(message.isAdd)
MiniFileMgr.filesListObj[message.url] = message.data;
else
delete MiniFileMgr.filesListObj[message.url];
}else if (message['type'] == "resizeShared")
{
__JS__('sharedCanvas').width = message.data.width;
__JS__('sharedCanvas').height = message.data.height;
var tempMatrix:Object = message.data.matrix;
var matrix:Matrix = new Matrix();
matrix.a = tempMatrix.a;
matrix.b = tempMatrix.b;
matrix.c = tempMatrix.c;
matrix.d = tempMatrix.d;
Laya.stage._canvasTransform = matrix;//重新设置矩阵
}
});
}
}

}

具体使用例子,可以参考:
微信关系链:LayaAir引擎针对微信小游戏好友关系链实现方案 https://ask.layabox.com/question/15086
完整的例子跟demo已经准备好,有问题请留言。
已邀请:

Aar0n

赞同来自:

开发者要仔细的多看看技术帖。。书读百遍其义自见

沧海一粟

赞同来自:

MarkMark

要回复问题请先

商务合作
商务合作