J'ai un nombre arbitraire de fichiers que je dois charger dans une application AIR.nombre arbitraire de gestionnaires Loader anonymes avec des données individuelles?
Je veux parcourir une série d'objets File et créer et lancer Loaders pour File.url de chacun.
Quand ils sont terminés (événement COMPLETED ou IOErrorEvent.IO_ERROR), je veux bourrer leurs données quelque part. Si elles échouent, je veux faire un rapport d'exception. Le meilleur moyen serait de créer des gestionnaires d'événements individuels pour chaque Launcher ayant les informations de fichier "codées en dur" dans celui-ci. À tout le moins, je pouvais utiliser la fonction elle-même comme un indice à un dictionnaire:
foo(fileToLoad : File) : void { var theCompletedHandler : Function = { var theFile : File = completedHandlerLookup[?????? this function ?????]; var theData : ImageData = new ImageData(theFile.url, (_loader.content as Bitmap).bitmapData); // do something with the data delete completedHandlerLookup[?????? this function ?????]; delete errorHandlerLookup.findByValue(theFile); // [sic] } var theErrorHandler : Function = { var theFile : File = errorHandlerLookup[?????? this function ?????]; // report the error delete errorHandlerLookup[?????? this function ?????]; delete completedHandlerLookup.findByValue(theFile); // [sic] } completedHandlerLookup[theCompletedHandler] = theCompletedHandler; errorHandlerLookup[theCompletedHandler] = theErrorHandler; var theLoader : Loader = new Loader(); theLoader.addEventListener(Event.COMPLETE, theCompletedHandler); theLoader.addEventListener(IOErrorEvent.IO_ERROR, theErrorHandler); theLoader.load(new URLRequest(fileToLoad.url));
Puis-je utiliser event.currentTaget et utiliser l'instance du chargeur comme un indice? Cela aura-t-il des dépendances étranges?
Vive
Merci d'avoir souligné le problème Loader vs. Loader.loader; il porte une attention constante. J'utilise des fonctions anonymes lorsqu'elles sont à usage unique et référencées par personne d'autre. Alors qu'une file d'attente est plus facile à coder, le succès de la performance peut être majeur car le système d'exploitation peut faire beaucoup de choses en parallèle. À la votre –