これが私がこれまでに得たものです:
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;
}
これが正しいかどうかはわかりませんが、作業するためのいくつかの数値が得られます。ステージに追加したくないのですが、初期化するために追加する必要があるようです。
初期化は、オブジェクトがレイアウトの3つのフェーズ(コミットメント、測定、およびレイアウト)をすべて通過した場合に当てはまります。
アップデート。リセットフェーズを追加しました。これにより、レンダリングフェーズが終了します。