抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Laya 对接微信开放域可以新建开放域项目来创建一个范例,开放域项目打包的时候不会打包资源文件,因此要在主域提前加载对应的资源文件并传递给开放域,能传递的有两种类型,一是 ui 图集,二是 json,亮着调用不同接口
例:

1
2
3
4
5
6
7
8
Laya.loader.load(
"res/atlas/rank.atlas",
Laya.Handler.create(this, (res) => {
Laya.MiniAdpter.sendAtlasToOpenDataContext("res/atlas/rank.atlas");
//json
//Laya.MiniAdpter.sendJsonDataToDataContext()
})
);

展示子域的时候 laya 会自动设置 canvas,但是子域一旦有嵌套层级,该方法就会产生偏移,解决方法为:

  1. 调整子域对象层级到根层级
  2. 手动触发changeMatrix事件。注意,如果手动触发该事件,则需要按照源码对应的格式构造传递的参数。
    例:
1
2
3
4
5
6
7
8
9
10
11
12
//此处canvasData为自定义对象,包含matrix,width,height三个属性,可以不需要按照此处代码构建对象,但一定要传入对应属性的参数
this.openData.postMsg({
type: "changeMatrix",
a: canvasData.matrix.a,
b: canvasData.matrix.b,
c: canvasData.matrix.c,
d: canvasData.matrix.d,
tx: canvasData.matrix.tx,
ty: canvasData.matrix.ty,
w: canvasData.width,
h: canvasData.height,
});

注意,如果要手动触发该事件,则需要延迟一帧的时间,防止 UI 界面还没有自动适配好宽高导致传入的 canvas 坐标偏移

评论