Ich habe ein Array von FileReference-Objekten, die mehrere Listener an jedes von ihnen angehängt haben, sollte ich jeden Listener in seiner Handler-Methode entfernen, oder sollte ich sie alle im kompletten Handler entfernen?Flex/AS3: Wann Hörer entfernen?
Ich habe irgendwo gelesen schwache Referenzen für die Hörer zu verwenden, aber ich würde denken, es wäre besser, explizit Hörer zu entfernen (ja?/Nein?)
for each(var f:Object in fileCollection){
var myFile:FileReference = f.file;
myFile.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadCompleteData)
myFile.addEventListener(ProgressEvent.PROGRESS, onProgress);
myFile.addEventListener(IOErrorEvent.IO_ERROR, onError);
myFile.addEventListener(Event.COMPLETE, onComplete);
}
private function onUploadCompleteData(e:DataEvent):void{
// doin my thing here
removeListeners(e)
}
private function removeListeners(e:Event):void{
var myFile:FileReference = FileReference(e.target)
myFile.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadCompleteData)
myFile.removeEventListener(ProgressEvent.PROGRESS, onProgress);
myFile.removeEventListener(IOErrorEvent.IO_ERROR, onError);
myFile.removeEventListener(Event.COMPLETE, onComplete);
}
Ihr Blog-Beitrag war hilfreich, überprüft die MAX Talk auch, danke. – Ronn