Tengo una matriz de objetos FileReference que tienen varios oyentes conectados a cada uno de ellos, ¿debería eliminar cada oyente en su método de manejo, o debería eliminarlos todos en el controlador completo?Flex/AS3: ¿Cuándo eliminar oyentes?
He leído en alguna de utilizar referencias débiles para los oyentes, pero yo creo que sería mejor para eliminar explícitamente oyentes (sí?/No?)
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);
}
La publicación de su blog fue útil, echó un vistazo a la charla MAX también, gracias. – Ronn