微信游戏在哪里 微信游戏在哪里设置不要好友看到( 三 )


形式3:label该属性名在定义和访问时都有被压缩
当然,/*[ZIP-JSON]*/作为注释块,在最后AS3被转成JS时,UglifyJS会帮助我们清除评论区,别担心加了注释块反而代码会大的问题 。
④ 特殊待遇
诸如 hasOwnProperty、propertyIsEnumerable 等方法,以及Layabox 里的 __JS__ 方法 。
方法中传递的字符串,其实就是一个属性名 。因为默认的属性名将被压缩,并且字符串不被压缩,所以这些方法中的名字,我们默认压缩 。但是应该压缩成什么样的名字呢?

微信游戏在哪里 微信游戏在哪里设置不要好友看到

文章插图
我们上面说的,哪些名字应该按,按压时的一些注意事项,最后,这些名字,你想怎么烫?当然压力越小越好,最低是多少?一个角色是最好的 。先来看看要造的名字,有什么限制 。名称可以由字母组成,字母区分大小写,也可以用数字,并加下划线,还有一个不常用的$符号,应该注意的是,名称的第一个字符不能是数字 。如果我们在一个字符中使用所有的名字,能有多少个名字?26小写字母,26大写字母,10数字没有用,添加两个符号,就是54个 。两个字的名字呢,就有3456个,三个字符是22万个 。当然这里会少几个可用的,为什么?比如,像as,is,if,for这样的名字,也是二字三字,但都是关键词,名称不能与关键字相同,但是这样的关键词并不多,不多于10个 。三个字符可以有22一万个名字,这对我们来说够了吗?
微信游戏在哪里 微信游戏在哪里设置不要好友看到

文章插图
上图是《大天使之剑H5》中使用的名称字数分布图,一共有4一万个名字,两个字的那个3一千肯定不够,三字的22一万可以完全满足 。让我们看看这些名字有多长,你可以从里面看到,95%以上的名称是大于三字的,那么优化的空间就更大了 。在我们最终项目的名字被压缩之后,全面下降1.9M 。下面是压缩后的名字,大部分工作都是用编辑工具完成的,一部分是修改源代码,还写了一个工具来处理,尽量用工具做,否则,您必须手动修改它,工作量会变得巨大 。
以上五点是对的《大天使之剑H5》优化后,如图所示:
微信游戏在哪里 微信游戏在哪里设置不要好友看到

文章插图
《大天使之剑H5》的代码是关于10M减少到大约5.1M的大小 。
⑤ 有些还没去过《大天使之剑H5》理想的优化
  • 静态常数被编译成JS之后,在使用的地方写值,这不一定是最佳的
  • 方法中使用的属性被分配给局部变量以供重用
  • 使用(param)=>{}代替function(param){}
  • 当一个类只有一个子类时,可以减少继承链
  • 可以减少分组结构
四、使用分包
在上述优化之后,《大天使之剑H5》主要代码也是5.1M,还需要这个5.1M裂开,这5.1M中,游戏引擎的部分占了0.7M,其他小文件占0.2M,剩下的主要程序是4.2M,剩余的4.2M可以转包加工 。
怎么能转包在腾讯和layabox官网找详细教程,以下是相关链接:
腾讯关于分包加载的解释:
https://developers.weixin.qq.com/minigame/dev/tutorial/base/subpackages.html
Layabox微信游戏在官网转包的例子:
https://ldc.layabox.com/doc/?nav=zh-js-5-0-6
关于在layabox是怎么分包的,这里简单说一下:
微信游戏在哪里 微信游戏在哪里设置不要好友看到

文章插图
项目的根本,创建一个module.def文件,这是一个文本文件,里面的内容如下,可以编,生成主文件的JS和模块.js两个文件 。如果要将其分成多个模块,写出不止一个这样的结构,只需定义模块名称和模块对应的代码所在的文件夹即可 。
看起来是不是很简单?但是我们随机指定一个文件夹中的代码编译成一个模块,然后独立出去,运行时,会有一个错误 。上图红色部分报告了一个错误 。
该错误的原因是主文件将首先运行,主文件引用模块的XXX,当它在这里运行时,该模块尚未加载,所以xxx未定义,所以报错了 。
所以,在你能很好地划分模块之前,你需要分离项目 。如果你想分离,那你必须知道,我们分配给模块什么功能,如果您需要在此功能中与主程序进行交互,需要设计相应的传递机制来实现解耦 。
如果该项目是新项目,我们可以在设计游戏之初就做这一部分,在功能开发中,要知道该功能是一个要分出来的模块,应该用什么样的开发规则进行开发,可以实现解耦,然后实现模块化 。
但是我们的游戏上线快一年了,如果我们现在加入这样的机制,就相当于把需要放入模块的功能进行了重构,这是一项繁重的工作,并且必须重新测试该功能,开放式开发周期,很容易出去BUG 。后来我想到了一个方法,可以不解耦的划分模块 。