Forums Développement Multimédia

Aller au contenu

Upload et IE

PAO Flash

  • Vous ne pouvez pas répondre à ce sujet
Aucune réponse à ce sujet

#1 sebastien.decamme

    Ceinture Blanche

  • Members
  • Pip
  • 3 messages

Posté 24 February 2011 - 12:01 PM

Bonjour à tous,

Voilà deux jours que je m'arrache les cheveux sur un problème de compatibilité de mon objet SWF sous IE.
J'ai tenté de créer un petit objet Flash me permettant d'uploader une image sur mon appli web. J'utilise la classe ExternalInterface pour gérer l'état et l'avancement du chargement en Javascript.
Tout fonctionne à merveille sauf sous IE qui bloque arrivé à 100% du chargement.

Voilà la source :


stop();
import flash.external.*;
import flash.net.FileReferenceList;
import flash.net.FileReference;
import flash.net.FileFilter;
import flash.events.*;
import flash.net.URLRequest;

var browser:FileReference = new FileReference();
var imagesFilter:FileFilter = new FileFilter("Images (*.jpg)", "*.jpg");
var uploadLibUrl:URLRequest = new URLRequest();
var vars:URLVariables = new URLVariables();
var completeCallBack:String = root.loaderInfo.parameters.onComplete;
var WORKING:Boolean = new Boolean(false);

uploadLibUrl.url = root.loaderInfo.parameters.lib;
uploadLibUrl.method = URLRequestMethod.POST;
vars.userId = root.loaderInfo.parameters.user;
uploadLibUrl.data = vars;
browser.addEventListener(Event.COMPLETE, completeHandler);
browser.addEventListener(ProgressEvent.PROGRESS, progressHandler);
browser.addEventListener(Event.SELECT, selectHandler);
browser.addEventListener(Event.CANCEL, cancelHandler);
btnBrowse.addEventListener(MouseEvent.CLICK, openBrowser);

function openBrowser(event:Event):void{
        if(WORKING == true) return;
        browser.browse([imagesFilter]);
        WORKING = true;
}

function completeHandler(event:Event):void{
        WORKING = false;
        ExternalInterface.call(completeCallBack);
}

function progressHandler(event:ProgressEvent):void{
        var percentLoaded:Number=event.bytesLoaded/event.bytesTotal*100;
        ExternalInterface.call("onUploadProgress", event.bytesLoaded,event.bytesTotal, percentLoaded);
}

function selectHandler(event:Event):void{
        var file:FileReference = FileReference(event.target);
        if(file.size >= 2000000){
                WORKING = false;
                ExternalInterface.call("fileSizeError", file.size);
        }else{
                ExternalInterface.call("onFileSelected", file.name);
                file.upload(uploadLibUrl);
        }
}

function cancelHandler(event:Event):void{
        WORKING = false;
}
 

En gros, il semblerait qu'arrivé à 100%, l'évènement "completeHandler" ne soit pas déclenchée.

Pourriez-vous m'aider ?
Merci d’avance.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)