2.0.5 CC_XXX 这几个宏都不起作用

QQ Play 勾选调试模式

生成的 cocos-js.js 里的定义是这样的

defineMacro("CC_DEV", true); 
defineMacro("CC_BUILD", false);

可是生成的 project.dev.js 里的和宏有关的代码都没有了,比如这样的:

if(CC_DEV)
{

}
if(!CC_BUILD)
{

}

不然怎么叫做宏呢?没有是正常的,因为已经融入到血液里了

1赞

不对啊,CC_DEV 是true, if里的代码应该是生效的啊
现在的结果是if里的代码被优化掉了

如果已经知道是 true 的话,还要宏干什么啊?那个 true/false 是宏未定义时动态生成的默认值,每个平台最终实际的值是不一样的。

var a ;
if(CC_DEV)
{
a = 1;
}
else{
a = 2;
}

比如这样,根据打包情况给变量赋不同的值什么的。
可现在CC_DEV = true;
a=1的代码却被优化没了,只保留了a=2的代码

什么情况下会 = true??

QQ Play 勾选调试模式

生成的 cocos-js.js 里的定义是这样的

defineMacro(“CC_DEV”, true);
defineMacro(“CC_BUILD”, false);

这个不代表最终 CC_DEV 就是 true。麻烦你看下 defineMacro 的实现

好吧,先不用这个东西了
有CC_QQPlay,CC_WeChatGame,
能不能加个CC_Facebook,CC_其他发布平台的宏啊

facebook 可以用 cc.sys.platform 进行判断。宏不会再增加了

有宏可以把不相关的代码优化掉,还是挺好用的

用cc.sys.platform进行判断,并不能把代码优化掉,
现在那么多平台,就微信是有宏的

1赞