找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6|回复: 0

调试

[复制链接]

13

主题

0

回帖

31

积分

管理员

积分
31
发表于 昨天 11:00 | 显示全部楼层 |阅读模式 IP:安徽
1.使用 DEBUG 编译参数
开发者经常写一些希望仅在开发阶段使用的代码,来进行数据校验、输出日志等。
Egret 提供了 DEBUG 这一全局变量来实现这样的功能。
下面的代码校验 value 是不是由4个数字组成,如果不是,输出指定的错误信息。
  1. if  (DEBUG)  {
  2.   const rect = value.split(",");
  3.   if  (rect.length  !=  4  ||  isNaN(parseInt(rect[0]))  ||  isNaN(parseInt(rect[1]))  ||
  4.   isNaN(parseInt(rect[2]))  ||  isNaN(parseInt(rect[3])))  {
  5.     egret.$error(2016,  this.currentClassName,  toXMLString(node));
  6.   }
  7. }
复制代码
在发行版生成过程中,Egret 命令行会移除 if(DEBUG){ ... } 这一整个代码块,保持发行版包体的精简。
Egret 还提供了另外一个与 DEBUG 对应的编译参数 RELEASE,用来编写只在发行版中运行的代码。
2.使用内置日志输出面板
在PC端可使用 console 提供的诸多方法输出日志,然后使用浏览器提供的开发者工具查看。
但是在移动端这个方式受到了限制,大多数移动端浏览器没有查看日志的方法。 因此 Egret 集成了向屏幕输出日志的功能,以方便移动设备调试。
QQ20251028-105908.jpg


在 index.html 文件中有如下代码块:
  1. <div style="margin: auto;width: 100%;height: 100%;" class="egret-player"
  2. data-entry-class="Main"
  3. data-orientation="auto"
  4. data-scale-mode="showAll"
  5. data-frame-rate="30"
  6. data-content-width="640"
  7. data-content-height="1136"
  8. data-multi-fingered="2"
  9. data-show-fps="true" data-show-log="false"
  10. data-show-fps-style="x:0,y:0,size:12,textColor:0xffffff,bgAlpha:0.9"\>
  11. </div>
复制代码
通过 data-show-log: 设置是否在屏幕中显示日志。 true 显示,false 不显示。
在代码中可以直接调用 egret.log(message?:any, ...optionalParams:any[]) 来输出日志。
data-show-fps-style 可以设置日志的位置,文字大小和背景颜色
3.显示帧频信息
data-show-fps="true/false" 设置是否显示帧频信息,当这个值为 true 时 Egret 会在舞台的左上角显示 FPS 和 其他性能指标
  • FPS: 60 - 帧频
  • Draw: 13 - 每帧 draw 方法调用的平均次数
  • Cost: 0,0 - 1)Ticker 和 EnterFrame 阶段显示的耗时; 2)绘制显示对象耗时(单位是ms)
注: 5.2 之前的版本 Cost 有3个值,分别为:1)Ticker 和 EnterFrame 阶段显示的耗时; 2)每帧舞台所有事件处理和矩阵运算耗时; 3)绘制显示对象耗时(单位是ms)
4.动态隐藏和显示信息面板
在游戏页面,FPS 面板和调试信息面板是在同一个 div 标签里。在引擎 5.2.23 版本之后,该 div 标签增加了id值 egret-fps-panel, 当您在 index.html 里开启信息面板后, data-show-fps="true" data-show-log="true"。可以通过代码动态隐藏和显示这个面板。注意 该功能只有在 pc 的浏览器中才有效。
  1. //隐藏面板
  2. document.getElementById('egret-fps-panel').style.visibility ="hidden";
  3. //显示面板
  4. document.getElementById('egret-fps-panel').style.visibility ="visible";
复制代码


易找素材网-素材不好找?易找帮你找!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表