lundi 20 juin 2016

AS3 event listeners inside loop

I'm having a bit of a hard time figuring this one out.

I'm creating an Air/Flash app that uploads files from a local directory to the server.(without user interaction). I'm creating an Array of the files found in the folder and can upload them fine without any issues. However, I can not keep track of the event listeners; meaning, the for loop obviously completes before the event listeners for each upload.

Is there a way to keep track of the event listeners and find out when the last one finished?

Any help is greatly appreciated...

Here's my code:

public var UPLOAD_URL:String = "http://myhost/dev/uptest.php";
upbtn.addEventListener(MouseEvent.CLICK, uploadme);
public function uploadme(event:MouseEvent):void
        preloader.visible = true;
        var desktop:File = File.applicationStorageDirectory.resolvePath("photo");
        var files:Array = desktop.getDirectoryListing();
        for (var i:uint = 0; i < files.length; i++)
            var date:Date = new Date(); // get new date
            var mytime:Number = Math.round(date.valueOf()/1000);
            var ur:URLRequest = new URLRequest();
            var uv:URLVariables = new URLVariables();
            uv.filename = files[i].name;
   = uv;
            ur.method = URLRequestMethod.POST;
            ur.url = UPLOAD_URL;

            files[i].addEventListener(ProgressEvent.PROGRESS, updateProgress);
            files[i].addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, doneUpload);
            files[i].addEventListener(IOErrorEvent.IO_ERROR, fileError);

            function updateProgress(event:ProgressEvent):void
                //wait preloader.visible = true;
            function doneUpload(event:DataEvent):void
                //var loader2: URLLoader = URLLoader(;

                //preloader.visible = false;

            function fileError(event:IOErrorEvent):void

Aucun commentaire:

Enregistrer un commentaire