[]关于getGraphicBounds的代码原理

edit:
 
看了好久,现在_getCmdPoints大概明白了,就是根据绘图cmd列表,计算不同的边框,放到一起。
 
现有还两个疑问:
代码最后这里:

tmp.png

 
为什么rst超过200长的时候,直接取了边框,而8~200之间却算了个凸包呢?
_getCmdPoints只在Graphics.as(某新版到了GraphicsBounds.as)里面有调用,而且最后都会到Rectangle._getWrapRec去,得到4个点,那么这里对rst的分类处理是什么用的啊?
@cuixueying
 
 
-------------------------------
原问题:通过文档和一些实践,我知道了getBoundsgetGraphicBounds是性能比较耗的两个方法。为了搞清楚底层,我查看了其源码。但水平和时间有限,不太能看懂。

只知道getBounds考虑style,transform等, 还可能递归算所有子节点;两个函数都可能调到_getCmdPoints(最看不懂的地方)。

另一方面,我做了点测试发现getBounds没有把drawLine这种范围算进去,getGraphicBounds没有考虑旋转等。

这里想问下这两方法各自到底做了些什么?里面哪些是耗性能的关键呢?
只要解释到让我能用图示传达给别人的程度就可以了。
不胜感激!
已邀请:

nalley

赞同来自:

顺便_getCmdPoints里面,这里怎么感觉有点奇怪呢,cmd的1,2,3,4才是一个矩形吧,这里却是0,1,2,3?

tmp.png

------------
edit:
哦好像cmd数组有好多种格式,这里的0不是texture咯?

要回复问题请先

商务合作
商务合作