我正在开发的应用程序包含一个Spark List控件,它使用包含mx:LineChart的Spark ItemRenderer。随着每个新项目添加到列表中,其重绘时间显着增加。添加第15项后,整个GUI冻结约20秒以刷新列表。
如何优化项呈示器?
每次我在列表中添加新项目时,我都会创建一个新的ArrayCollection并将其传递给列表。
Inside 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}"/>
Inside ScenarioChart:
override protected function commitProperties():void {
super.commitProperties();
chart.dataProvider = _leftAxisData;
bottomAxis.dataProvider = _bottomAxisData;
}