LayaAir之小遊戲開放域開發
阿新 • • 發佈:2018-11-10
userinfo 方式 require WebG ide pri 其中 fff 打包 版本 : LayaAir2.0.0bate4
一 : 認識類 : Laya.WXOpenDataViewer , 顧名思義:此類封裝了開放域(子域)的畫布功能.這樣的話就不需要程序員自己去寫畫布功能了. 其用法主要如下:
①:在UI編輯其中 , 使用此組件(可設置寬高,坐標等等)
②:可以在代碼中new,再設置寬高,坐標等,代碼片段(偽代碼)如下
private _my_open : Laya.WXOpenDataViewer = null; this._my_open = new Laya.WXOpenDataViewer(); this.width = this._my_open.width = 255; this.height = this._my_open.height = 236; this.addChild( this._my_open );
二:在主域顯示開放域(子域)的畫布信息
Ⅰ,主域發送信息
①,發送信息是用Laya.WXOpenDataViewer類的postMsg進行發送的.其實它封裝了wx.postMessage方法.實例如下:
this._my_open.postMsg({ type : "ResultPhoto" , myOpen : WC_UserInfo_VO.Instance.OpenId , myDistance : $distance} );
Ⅱ,子域接收信息
②,註意,子域接收消息最好在Main(或其他管理類)初始化的時候做一個消息的分發.因為,你不能只接收一條主域信息:
constructor() { //根據IDE設置初始化引擎 Laya.init(GameConfig.width, GameConfig.height ); Laya.stage.scaleMode = GameConfig.scaleMode; Laya.stage.screenMode = GameConfig.screenMode; Laya.stage.alignV = GameConfig.alignV; Laya.stage.alignH = GameConfig.alignH; this.onConfigLoaded(); } private onConfigLoaded(): void { //加載IDE指定的場景 this._wx = Laya.Browser.window.wx; if( this._wx ){ //接受來自主域的信息 this._wx.onMessage(function(message):void{ this.recevieData(message); }.bind(this)); } }
三 : 補充註意點(小遊戲項目)
Ⅰ,主域部分
① , 在game.json中加入"openDataContext": "./openDataContext" , 如下:
Ⅱ,子域部分
① , 子域工程以小遊戲方式打包
② , 子域資源結構如下:
③ , index.js 加入引入的項目 , 不要加入webgl等庫
手動加入部分類庫:
require("weapp-adapter.js");
require("libs/laya.wxmini.js");
window.loadLib = require;
四 : 結果
OK , 本篇基本到此結束............
LayaAir之小遊戲開放域開發