laya旧引擎1.7.20.1beta发布qq小游戏问题

ide版本:1.8.4 (编辑器的帮助按钮下面可以看到)

引擎版本:1.7.20.1.beta(运行起网页项目,在浏览器中输出Laya变量,可以在变量里看到版本号)

正常发布流程很简单,发布出一个qq小游戏项目:

该版本ide发布原理大概:

它会找bin文件夹下面的index.html文件,查看index.html里面<script>标签引用了哪些js文件,然后把这写引用到的脚本文件合成到一个code.js文件中。

生成的qq小游戏项目中,看入口文件game.js

require("weapp-adapter.js");
window.loadLib = require;
require("code.js");

weapp-adapter.js//这个文件是适配文件,它把一些浏览器提供的对象名绑定到qq环境的对象中,比如xmlHttpRequst对象是浏览器中的,在qq环境中是没这个对象的,引入这个文件,我们还是可以继续使用这个对象,laya帮我们把这个变量名已经指向qq环境中的xmlHttpRequst对象了

报错1:找不到某些变量

某些变量本来在浏览器中找得到,但是在qq开发者工具中找不到了,

比如可能在js中这样定义变量 var a = 1;

在代码中是能找到a的,其实是在浏览器环境的变量提升原理,a被放到了window对象上,

改成 window.a = 1; 这样来解决问题

比如laya项目里的Main找不到了,可以在class Main(){}后面加一句window.Main = Main;

不报错了,qq开发者工具中黑屏 

需要在Main的constructor中加一句:

laya.qq.mini.QQMiniAdapter.init();

旧版本必须手动加一句,来初始化qq

qq登录,或者第三方sdk登录获取不到openid

可能是因为appid对应不上,laya发布出来的项目会自己生成一个appid,一定要换成真实后台配置的appid,project.config.json中,详情按钮下面的appid

无法预览和真机调试

要预览或者真机调试,它会真实的打包放到qq服务器上面的,必须要主包小于4M,所有子包加主包小于20M,把项目里的资源全删掉,更改引擎对于资源的下载根目录,laya引擎的话,通过,

Laya.URL.rootPath = Laya.URL.basePath = ‘http://一条可资源下载的web地址’

实现分包

在game.json里加一个分包配置,

"subpackages": [

    {

      "name": "stage1",

      "root": "js/"        

    }

  ]

root可以配置的是一个js地址,这样分包加载后,这个js已经是执行过了,

也可以是一个目录,如果是目录的话,就需要在这个目录下再建立一个game.js文件,作为分包的入口文件,怎么执行分包下面的js文件,顺序,要在game.js中写

分包加载失败

我把laya的main.js放在分包中,然后new Main(),发现会触发分包的加载失败,不知道什么原因,可能new Main里面的代码引起的,因为我发现它分包先触发game.js文件的执行,执行完了才会触发分包的加载完成事件,然后我在game.js里面执行new Main,就不行,改变就是,

setTimeout(()=>{new Main},0)

这样让js引擎先执行完分包加载,再在下一个事件循环来执行new Main,就没问题了

运行到报错代码,它就不运行了,也不报错

Browser.container.style.top = "0px";

这个代码在qq里用不了,在调试器中输出Browser.container.style,发现style是一个字符串,这肯定就报错了,但它不报错,就停止运行了,定位了好久才找出来

Laya.HTMLDivParser.innerHTML在微信开发者工具报错:需要引入xml解析库文件

需要引入domparserinone.js这个库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值