我正在开发的应用程序包含一个 Spark List 控件,该控件使用一个包含 mx:LineChart 的 Spark ItemRenderer。随着每个新项目添加到列表中,其重绘时间显着增加。添加第 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;
}