• Laya微信小游戏的开放域


    版本2.1.1.1

    现在Laya的开放域比较好用了。

    新建开放域项目,里面直接有个排行榜的示例。

    直接发布

    得到较少的文件,复制这些文件,粘贴到主项目bin/openDataContext下。 (openDataContext文件夹需要自己创建)

     并将开放域项目下libs/laya.opendata.js也复制到主项目bin/openDataContext/libs下 (libs文件夹需要自己创建)

     

     复制开放域项目下的laya/assets/test的排行榜图片复制到主项目的bin/test下,否则开放域找不到图片地址下载

     

    最终微信项目文件如下

     设置主项目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();注释掉

    主项目发布,微信开发者工具打开,最终显示

     

  • 相关阅读:
    查询多列数据时用这种方法查询
    当只需要查找一列数据的时候 用这种方法减少数据库的访问
    将从数据表中获得的枚举变量名称或者是控件名变成要使用的枚举变量
    枚举变量用法
    查询数据表行数 然后循环查找表 添加数据到ITEMS
    tbType和TypeList操作
    c#中动态创建textbox并且从数据库中获取表中数据添加到textbox中
    OpenCV
    lambda表达式
    技术术语
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/11545411.html
Copyright © 2020-2023  润新知