[]关于Graphics绘制多次后使用它仍然是多个drawcall

var g1 = new Graphics();
g1.drawRect(100, 100, 100, 100, "#FF0000");
g1.drawRect(255, 255, 100, 100, "#FFff00");
g1.drawRect(666, 666, 100, 100, "#FFff00");
for (var i = 0; i < 5000; i++) {
g1.drawRect(888, 200, 100, 100, "#FFff00");
}
var g2 = new Graphics();
g2.drawRect(0, 0, 100, 100, "#00FF00");
var g3 = new Graphics();
g3.drawRect(500, 500, 100, 100, "#FFFFFF");
var arr = [g1, g2, g3];
var index = 0;
var sp: Sprite = new Sprite;
stage.addChild(sp);
setInterval(function () {
sp.graphics = arr[index++]
if (index >= arr.length) {
index = 0;
}
}, 1000);

这种方式按照我的理解应该每次切换一个Graphics,但一个Graphics绘制了N次,实际drawcall是N次,而且是在切换到下一帧的时候绘制N次而不是当前帧 这是怎么回事??是BUG还是?我如果要优化每次1drawcall的话如何处理了
已邀请:

cuixueying

赞同来自:

在layaAir下,一个矢量图代码一个drawCall,过多的矢量图会严重影响性能,建议少用!

要回复问题请先

商务合作
商务合作