JS:
var intObj=20.2;
if(!__DEBUGTYPE__(intObj,'int'))debugger;//在此行会自动断点
===============
AS:
var py:int = undefined;
JS:
var py=undefined;
if(!__DEBUGTYPE__(py,'int'))debugger;//在此行会自动断点
=================
AS:
var pxy:int = 1+undefined;
JS:
var pxy=1+undefined;//output:NaN
if(!__DEBUGTYPE__(pxy,'int'))debugger;//在此行会自动断点
==================
AS:
var uintObj:uint = 3.1;
JS:
var uintObj=3.1;
if(!__DEBUGTYPE__(uintObj,'uint'))debugger;//在此行会自动断点
==================
AS:
setName(123);
function setName(name:String):void
{
trace(name);
}
JS:
function setName (name){
if(!__DEBUGTYPE__(name,'String'))debugger;//在此行会自动断点
trace(name);
}
===================
AS:
var asString:String = asObj as String;
JS:
var asString=__DEBUGAS__(asObj,String);
==================
AS:
var asObj:String ="123";
if(asObj as Sprite)
{
trace("走强转成功的逻辑!");
}else{
trace("走强转失败的逻辑!");
}
1 个回复
cuixueying
赞同来自:
一、模式
1、普通(general)模式
描述:
在general编译模式下,还是保持原有的调试信息,用户可以定位到出问题的代 码所在的类和一些备注信息;
2、调试(debug)模式
描述:
在debug编译模式下,会增加额外检测判断逻辑,方便定位代码中存在的问题。
使用:
(1)、开启debug模式方法: /*[COMPILER OPTIONS:debug]*/ 在游戏入口类的package内导包位置加上此编译宏;
(2)、关闭debug模式方法: 删掉编译宏;
3、发布(release)模式
描述:
在release编译模式下,会对引擎库和项目里没有被引用的类、警告等备注信息进行剔除操作,减少发布后JS文件的体积,加快文件载入速度;
使用:
/*[COMPILER OPTIONS:release]*/
注意: 在general(普通)和debug(调试)模式下,不会注释掉未赋初始值的成员变量,完全与原生flash一样;在release(发布)模式下,注释掉未赋初始值的成员变量,美化了代码,优化了性能
二、调试debug模式详解
注意:打开debug模式后,运行时必须打开调试面板。
开启debug模式后
1.编译代码将增加int,uint,Number,String的类型判断,都将被翻译成if(!__DEBUGTYPE__(判断对象,判断类型))debugger,如果检测对象非指定类型,即会中断程序运行,并在检测到问题的代码处自动断点。
2.编译代码将增加as强转类型的判断,项目中所有被用到的as强转,都将被翻译成__DEBUGAS__(判断对象,判断类型),类型不匹配时,即会中断程序的运行。并自动断点,选择Call Stack断点的上一步。
例子参考 ===============