私が開発しているアプリケーションには、mx:LineChartを含むSparkItemRendererを使用するSparkListコントロールが含まれています。リストに新しいアイテムが追加されるたびに、その再描画時間は著しく増加します。15番目の項目を追加した後、GUI全体が約20秒間フリーズして、リストが更新されます。
アイテムレンダラーを最適化するにはどうすればよいですか?
リストに新しいアイテムを追加するたびに、新しいArrayCollectionを作成し、それをリストに渡します。
ChartList.asの内部:
override protected function commitProperties():void {
super.commitProperties();
_itemRenderer = new ClassFactory(ChartListItemRenderer);
list.itemRenderer = _itemRenderer; //list is a skin part
list.dataProvider = _data; //list is of type s:List
}
Indise ChartListItemRenderer.mxml:
<sc:ScenarioChart leftAxisData="data.series}"
bottomAxisData="{_period}"/>
シナリオチャートの内部:
override protected function commitProperties():void {
super.commitProperties();
chart.dataProvider = _leftAxisData;
bottomAxis.dataProvider = _bottomAxisData;
}