这是我到目前为止所得到的:
timeLabel.text += "\nAbstractDataGridItemRenderer: " + testGridItemRenderer(AbstractDataGridItemRenderer, data, 50);
和功能:
public function testItemRenderer(renderer:Class, data:Object, iterations:int = 1000, resetTime:Boolean = false):int {
var layoutManager:LayoutManager = LayoutManager.getInstance();
var time:int = getTimer();
var itemRenderer:IItemRenderer;
for (var i:int;i<iterations;i++) {
itemRenderer = new renderer();
itemRenderer.data = data.name + i;
itemRenderer.width = 300;
itemRenderer.height = 30;
itemRenderer.y = i * 30;
itemRenderer.label = LabelUtil.itemToLabel(data, "label");
addElement(itemRenderer);
//trace("initialized = " + ILayoutManagerClient(itemRenderer).initialized);
layoutManager.validateClient(ILayoutManagerClient(itemRenderer), false);
//trace("initialized = " + ILayoutManagerClient(itemRenderer).initialized);
}
if (resetTime) {
time = getTimer();
for (i=0;i<iterations;i++) {
itemRenderer.data = data.name + i;
itemRenderer.label = LabelUtil.itemToLabel(data, "label");
//addElement(itemRenderer);
//trace("initialized = " + ILayoutManagerClient(itemRenderer).initialized);
layoutManager.validateClient(ILayoutManagerClient(itemRenderer), false);
//trace("initialized = " + ILayoutManagerClient(itemRenderer).initialized);
}
return getTimer() - time;
}
return getTimer() - time;
}
我不知道这是否正确,但它给了我一些可以使用的数字。我宁愿不把它添加到舞台上,但似乎我必须这样做才能让它初始化。
当对象经历了布局的所有三个阶段时,初始化为真:承诺、测量和布局。
更新。我添加了一个重置阶段。这离开了渲染阶段。