layabox游戏开发经验分享2

console.trace()
输出堆栈

console.time() 和 console.timeEnd()
如果你试图查找一个比较隐匿的性能问题,请使用 console.time() 开始计算时间,然后使用 console.timeEnd() 进行打印。

console.memory
如果你的性能问题很棘手,你正在寻找一个比较隐蔽的内存泄漏问题,你可能想尝试和利用 console.memory(属性,而不是函数)来检查你的堆大小状态。

console.profile(‘profileName’) 和 console.profileEnd(‘profileName’)
这不是标准的方法,但得到各浏览器调试工具的广泛支持。您可以使用 console.profile(‘profileName’) ,然后使用 console.profileEnd(‘profileName’) ,从代码中启动和结束浏览器性能工具 – 性能配置文件。这将帮助你准确地分析你想要的内容,并防止的单击鼠标,这取决于执行时间。

console.count(“STUFF I COUNT”)
在函数或代码反复出现的情况下,可以使用 console.count(’?’) 来获取代码被读取的次数。

console.assert(false, “Log me!”)
是的,有条件的日志记录不需要用 if-else 包装你的 logs(日志) ?。你可以使用 console.assert(condition, msg) 在条件为假时记录某些内容。

console.group(‘group’) 和 console.groupEnd(‘group’)
写了这么多的日志之后,你可能想要对它们进行合理组织,以方便你查看。一个小而有用的工具是 console.group() 和 console.groupEnd() 。使用 console group ,你的 console 日志将被分组在一起,而每个分组在层次结构中创建另一个层次。调用 groupEnd 减少一个。

字符串替换
日志记录时,可以使用字符串替换合并变量。这些引用类型应该是(%s = string,%i = integer,%o = object,%f = float)。

console.clear()
那么,写了这么多的日志,现在是时候清理一下你的控制台了。

console.table()
在我看来,这是一个真正的宝贝!实际上,你可以使用 console.table() 打印一个非常漂亮的表格。

在Chrome devtools界面按 ctrl + shift + p 输入 Show Rendering

不过这个东西没啥用

chrome DevTools之黑箱大法(Blackbox )
Blackbox 提高JavaScript调试效率
所有人前端开发人员都会遇到的问题,您的应用程序代码中会出现错误。您开始调试,但是逐行执行代码时,调试器有时会跳转到不是您的焦点的源文件(例如第三方JS库)。我相信你在回到自己的应用程序代码之前,经历了很多烦恼。

Blackboxing(黑箱)为您提供了便利,以便调试器可以绕过一个第三方JS库。当您黑箱一个源文件时,调试时代码,调试器将不会跳转到该文件(黑箱中的文件)。

  1. 当你黑箱子一个脚本,会发生什么
    进入/退出/过渡绕过库代码
    事件侦听器断点不会破坏库代码
    调试器不会暂停在库代码中设置的任何断点。
    总之当黑箱一个脚本时,能让你更加方便的专注调试当前脚本

  2. 如何黑箱脚本
    使用settings(设置) – 选中Blackboxing
    当对应代码文件的标注行数位置点击Blackbox script

monitor & unmonitor
monitor(function),它接收一个函数名作为参数,比如function a,每次a被执行了,都会在控制台输出一条信息,里面包含了函数的名称a及执行时所传入的参数。

而unmonitor(function)便是用来停止这一监听。

function sayHello(name){
alert(‘hello,’+name);
}
monitor(sayHello);
sayHello(‘wayou’);
unmonitor(sayHello);
sayHello(‘wayou’);

debug & undebug
debug同样也是接收一个函数名作为参数。当该函数执行时自动断下来以供调试,类似于在该函数的入口处打了个断点,可以通过debugger来做到,同时也可以通过在Chrome开发者工具里找到相应源码然后手动打断点。
而undebug 则是解除该断点。

console.dir(这个方法是我经常使用的 可不知道比for in方便了多少) 直接将该DOM结点以DOM树的结构进行输出,可以详细查对象的方法发展等等

重写console.log(可以关闭输出)
console.log = (function(oriLogFunc){
return function(str)
{
oriLogFunc.call(console,“hello:”+str);
}
})(console.log);

layabox官方关闭log的方法
TraceTool.closeAllLog();

TraceTool.getCallStack();
得到调用堆栈

TraceTool.getClassName(instance);
只能得到实例的类名

ClassTool.getClassName();
既可以传实例 也可以传类 都能得到正确的类名称 非常好用

keys和values前者返回传入对象所有属性名组成的数据,后者返回所有属性值组成的数组

ObjectTools.setAutoTypeValue(obj:Object,key:String,value:*);
他会自动判断你数据里的类型 然后转成你想要的类型
加载配置表的时候会用到

ObjectTools.clearObj();
清空对象

StringTool.toLowHead();
首字母小写 注入时用

loading界面用这个
Dialog.manager.setLockView(l);
Dialog.manager.lock(false);

Laya.init( 0, 0,WebGL,Log);
屏幕上显示日志

https://github.com/Stuk/jszip
http://stuk.github.io/jszip/

你可能感兴趣的:(游戏开发,layabox)