Egret社区

egret build的一个bug

2014-7-15 22:38
11784
最新版的egret build有个问题
比如var _game = egret.getDefinitionByName("games.game1);
整个games文件夹都编译不出来
但是在下面写一行注释掉的代码就能编译出来
//var _game = games.game1;

上一个版本里没有这个问题,可以正常build
分享到 :
0 人收藏

4 个回复

倒序浏览
guoshaorui  超级斑竹 | 2014-7-16 09:04:03
这应该是用了反射的缘故
在Flash里也有这个问题,如果没有明确的引用,类就会被编译时排除,导致运行时用反射找不到类定义,解决方法是,找个地方明确引用一下这个类,比如声明变量。
在Egret里也是类似的原理,需要反射的类,找个地方用变量引用一下,确保它会编译出JS。
至于用注释也可以,不知道是不是Egret有意为之,还是一个bug。
张宇  官方团队 | 2014-7-16 10:02:25
我的代码是上一个版本1.0.0升级过来的,那会没问题,用反射也可以编译出类
dom  圆转纯熟 | 2014-7-16 12:25:40
张宇 发表于 2014-7-16 10:02
我的代码是上一个版本1.0.0升级过来的,那会没问题,用反射也可以编译出类 ...

这个是1.0.1新增的特性,根据文档类的引用关系来生成最终的加载列表。这样可以避免没引用到的文件被打包到最终发行版里。这个跟Flash的编译原理也是保持一致的。解决这个问题有两种方案,第一种就是少瑞说的。跟Flash里一样,定义一个变量名。不实例化它。就引用了。第二种是使用egret create_mainifest命令,在工程目录下生成一个manifest.json模板,然后自定义加载的内容。
张宇  官方团队 | 2014-7-16 13:22:15
好的,知道是怎么回事就好办了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部