Можно ли вызвать, когда изменяется поставщик данных гибкой диаграммы? Любые идеи парней? Я использовал oncreation полный, но он не работает, когда динамически меняет источник данных диаграммы.как триггер, когда изменяется поставщик данных гибкой диаграммы?
ответ
Попробуйте 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;
}
Надеюсь, это поможет.
Если 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
}
}
спасибо за ваш ответ. Но мне нужно вызвать, когда сама коллекция изменится. –
Спасибо за ваш ответ. Это работает только при изменении поставщика данных. им привязка для запуска, когда изменяется тот же самый файл. –
что вы имеете в виду в целом dataprovider? вам нужно заменить «dataprovider» на имя вашего датапортера в приведенном выше коде. Else опубликуйте свой код, соответствующий этой части, чтобы дать вам точное решение. –
if (condition1) {chart.dataprovider = provider1} if (condition2) {chart.dataprovider = provider2} это именно то, что я ожидал.length провайдера один и provider2 не тот же. –