J'ai utilisé Flash Player 10 et Flex SDK 3.4. Le code comme suite:FileReference.load() n'est pas à l'exception
// Following comes callbacks
function imageLoadOpenCallback(evt:Event):void
{
trace("in--open");
}
function imageLoadCompleteCallback(evt:Event):void
{
trace("in--load");
var fr:FileReference = evt.target as FileReference;
trace(fr.data);
}
function imageLoadErrorCallback(evt:IOErrorEvent):void
{
trace("in--ioerror");
}
function imageSelectCancelCallback(evt:Event):void
{
trace("in cancel");
}
function imageSelectCallback(evt:Event):void
{
trace("in -- select");
for (var i:int=0; i<frl.fileList.length; i++)
{
frl.fileList[i].addEventListener(Event.OPEN, imageLoadOpenCallback);
frl.fileList[i].addEventListener(Event.COMPLETE, imageLoadCompleteCallback);
frl.fileList[i].addEventListener(IOErrorEvent.IO_ERROR, imageLoadErrorCallback);
frl.fileList[i].load();
trace(frl.fileList[i]);
trace(frl.fileList[i].creationDate);
trace(frl.fileList[i].creator);
trace(frl.fileList[i].data);
trace(frl.fileList[i].name);
}
}
// Following comes UI handlers
function onAddPictures():void
{
var imageFilter:FileFilter = new FileFilter("Images", "*.jpg;*.png");
frl.addEventListener(Event.SELECT, imageSelectCallback);
frl.addEventListener(Event.CANCEL, imageSelectCancelCallback);
frl.browse([imageFilter]);
}
Seul le gestionnaire imageSelectCancelCallback s'appelle lorsque je sélectionne des fichiers dans la boîte de dialogue. Mais aucun gestionnaire load/open/io_error n'est appelé du tout. J'ai un exemple de code Google, dans lequel il a utilisé FileReference au lieu de FileReferenceList. Je ne connais pas la raison, pourriez-vous s'il vous plaît m'aider?
Pourriez-vous s'il vous plaît formater votre code correctement? – poke
Le code ci-dessus, copié dans mon projet, fonctionne exactement comme je m'y attendais - le gestionnaire select est appelé lorsque je clique sur OK, le gestionnaire de chargement est appelé après que chaque fichier individuel a été chargé. –