我今天正在编写一些 blitting 代码,在对其进行分析后发现我正在创建 1000 个新矩形。我很震惊,因为我只有 1 或 2 个不同的新 Rectangle() 调用,或者我正在使用 BitmapData 的 .rect 属性。
我开始注释大量代码,直到在我的 sprite 类中留下这段代码:
canvas.bitmapData.copyPixels(_bitmapData, _bitmapData.rect, destination, null, null, true);
我在创建对象时缓存了 _bitmapData.rect 的结果,我的数千个新矩形调用突然从探查器中消失了。
为什么 BitmapData.rect 会创建一个新的矩形?有没有办法检查核心库或其他东西并确认这是真的?似乎莫名其妙。