关于Label的渲染流程,有点疑问

我是把2.0的分支源码下载下来看的,不知道怎么调试呢?

运行 cocos2d-x/tools/simulator/frameworks/runtime-src 下面的工程就能调试.

多谢,我试试。

不对,我要运行的是H5版本的Cocos-Engine源代码,不是Native版本项目。


新建了一个项目 追了下这个流程 发现确实 label 会走到这个fillText函数里,然后搜了下这个函数在原来javascript以及web的用法。。我也被搞懵逼了

嗯,这个地方的_context是通过doccument.createElement(“Cavas”)创建出来的Cavas获取2d的context。比较奇怪的是startPosition是(0,0),证明后面应该有个地方将这个cavas放置到某个位置上,但是也没找到呢?懵逼中。

@jare @panda 大佬,求帮忙解惑 - - 么么哒

哇 这就沉了么 老哥

你是怎么调试的,我用webstrom打开源码,但是不知道怎么创建项目去调试engine代码。

直接浏览器啊。。。

通过Cocos Creator构建后,会把engine代码压缩成一个文件吧。

不用。。老铁你新建个工程浏览器泡一下 ,然后 打开chrome的调试工具 就可以了啊

懂了,知道怎么调试了,多谢老哥。

所以 老哥 知道结果了么

在visit里filltext是有什么问题?

逻辑没问题,就是按照初始的设计,visit只会生成model,render才做渲染,有点小疑问而已。

所以。。还是在困惑么

不管了,反正知道就行了,我感觉Label的流程官方应该还会再优化,目前看起来不是很顺。

再看了一遍,大概知道了,Label是先将文字绘制在Canvas标签中,然后将Canvas作为贴图对象,在Render阶段渲染出来。

哦看了看 还真是
else { if (!this._ttfTexture) { this._ttfTexture = new cc.Texture2D(); this._ttfTexture.setPremultiplyAlpha(true); this._assemblerData = this._assembler._getAssemblerData(); this._ttfTexture.initWithElement(this._assemblerData.canvas); } this._texture = this._ttfTexture; }