是否可以在弹性图表的数据提供者更改时触发?有什么想法吗? 我使用了oncreation complete,但是在动态更改图表的数据源时它不起作用。
答案 0 :(得分:1)
如果dataProvider
是ArrayCollection
,您可以向dataProvider对象集合本身添加一个侦听器:
dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE,listernerFunction);
请注意,如果使用代码
替换整个dataProvider
对象
dataProvider = null;
dataProvider = new ArrayCollection();
您不会触发事件,您必须为新对象添加新的侦听器。
否则,您可以将监听器添加到图表本身,每次更换数据提供程序对象时都会触发该监听器,但是当集合本身发生更改时,它将不会触发。
chart.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE,funct);
[..]
protected function funct( event:PropertyChangeEvent):void{
if(event.property=="dataProvider"){
//Your code
}
}
答案 1 :(得分:1)
尝试 Changewatcher 类。
import mx.binding.utils.ChangeWatcher;
import mx.events.PropertyChangeEvent;
ChangeWatcher.watch(this, "dataProvider", watchHandler);
private function watchHandler(e:PropertyChangeEvent):void
{
// Do Something
}
否则试试这个, 将集合更改侦听器添加到图表本身,如下所示。
chart.addEventListener(CollectionEvent.COLLECTION_CHANGE, onChartDataProviderChange);
private function onChartDataProviderChange(e:CollectionEvent):void
{
// Do Something
}
if(condition1){
chart.dataprovider=provider1;
}
if(condition2){
chart.dataprovider=provider2;
}
希望它有所帮助。