版本2.1.1.1json
如今Laya的開放域比較好用了。微信
新建開放域項目,裏面直接有個排行榜的示例。微信開發
直接發佈工具
獲得較少的文件,複製這些文件,粘貼到主項目bin/openDataContext下。 (openDataContext文件夾須要本身建立)this
並將開放域項目下libs/laya.opendata.js也複製到主項目bin/openDataContext/libs下 (libs文件夾須要本身建立)url
複製開放域項目下的laya/assets/test的排行榜圖片複製到主項目的bin/test下,不然開放域找不到圖片地址下載3d
最終微信項目文件以下blog
設置主項目release/wxgame/game.json,增長 "openDataContext":"openDataContext"接口
主項目的TestScene中建立一個組件WXOpenDataViewer。 在Basics/UI下倒數第3個。(直接右鍵-建立UI組件,是沒有這個組件的)圖片
這個WxOpenDataViewer是顯示開放域的,你能夠理解爲這是一個電視,裏面播着開放域的界面。
主域通知開放域顯示排行榜
GameUI.ts:
onEnable(): void { Laya.loader.load(["res/atlas/test.atlas"],Laya.Handler.create(this,()=>{ //使用接口將圖集透傳到子域 Laya.MiniAdpter.sendAtlasToOpenDataContext("res/atlas/test.atlas"); })); }
開放域接收消息,並顯示排行榜
Main.ts:
class Main { constructor() { //設置子域 Laya.isWXOpenDataContext = true; Laya.isWXPosMsg = true; //根據IDE設置初始化引擎 Laya.init(GameConfig.width, GameConfig.height,false); Laya.stage.scaleMode = GameConfig.scaleMode; Laya.stage.screenMode = GameConfig.screenMode; Laya.stage.alignV = GameConfig.alignV; Laya.stage.alignH = GameConfig.alignH; // 關於透傳接口,請參考: https://ldc2.layabox.com/doc/?nav=zh-ts-5-0-7 if(Laya.Browser.onMiniGame) wx.onMessage(function(data){ console.log("子域收到消息:", data); if(data.url == "res/atlas/test.atlas" ){ Laya.loader.load("res/atlas/test.atlas",Laya.Handler.create(this,this.onComplete)); } }.bind(this)); else Laya.loader.load("res/atlas/test.atlas",Laya.Handler.create(this,this.onComplete)); } onComplete(): void { //初始化rank排行榜 var rank = new BigRank(); //初始化 rank.init(); } }
把開放域的BigRank的this.getFriendData();註釋掉
主項目發佈,微信開發者工具打開,最終顯示