J'ai une étrange bizarrerie en ActionScript. Je dois passer l'index à une fonction de rappel.Émission d'événements étranges dans ActionScript3
Voici mon code
for (var i:Number = 0; ((i < arrayQueue.length) && uploading); i++)
{
var lid:ListItemData=ListItemData(arrayQueue[i]);
var localI:Number= new Number(i); // to copy?
var errorCallback:Function = function():void { OnUploadError(localI); };
var progressCallback:Function = function(e:ProgressEvent):void { lid.progress = e; OnUploadProgress(localI); };
var completeCallback:Function = function():void { Alert.show('callback'+localI.toString()); OnUploadComplete(localI); }; // localI == arrayQueue.length - 1 (when called)
Alert.show(localI.toString()); // shows current i as expected
lid.fileRef.addEventListener(Event.COMPLETE, completeCallback);
lid.fileRef.addEventListener(ProgressEvent.PROGRESS, progressCallback);
lid.fileRef.addEventListener(HTTPStatusEvent.HTTP_STATUS, errorCallback);
lid.fileRef.addEventListener(IOErrorEvent.IO_ERROR, errorCallback);
lid.fileRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorCallback);
lid.fileRef.upload(url, 'File');
}
Toute idée sur la façon de passer l'indice à mes callbacks? ne bloque pas.
La 'target' ne fonctionnera pas pour moi parce que' target' ne me donnera que le 'FileReference', ce qui n'est pas ce dont j'ai besoin. –
Mais 'FileReference's pour différents' lid's sont également différents. Au moins, vous pouvez les stocker dans un tableau et en trouver un nécessaire dans le rappel. – dragonfly
Je peux également afficher l'exemple de délégué ou de fermeture. Mais c'est une mauvaise idée d'en utiliser un. – dragonfly