Foros del Web » Creando para Internet » Flash y Actionscript »

Como descargo una lista de archivos??? adobe air, flex 3

Estas en el tema de Como descargo una lista de archivos??? adobe air, flex 3 en el foro de Flash y Actionscript en Foros del Web. Hola, estoy trabajando con adobe air actionscript3. Estoy intentando descargar una lista de archivos y tengo el siguiente código private function loadafile(urlfile:String, j:int):void { var ...
  #1 (permalink)  
Antiguo 29/10/2008, 18:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Como descargo una lista de archivos??? adobe air, flex 3

Hola, estoy trabajando con adobe air actionscript3. Estoy intentando descargar una lista de archivos y tengo el siguiente código

private function loadafile(urlfile:String, j:int):void
{
var vectorURL:Array = urlfile.split("/");
nombrepag = vectorURL[vectorURL.length-1].toString();
Alert.show("nombre fileurl **"+nombrepag+"**"+j);
var request:URLRequest = new URLRequest(urlfile);
var loader:URLStream = new URLStream();
loader.addEventListener(Event.COMPLETE,SaveFile);
try {
loader.load(request);
} catch (error:Error) {
Alert.show("Unable to load requested URL.");
}
}


private function SaveFile(event:Event){
var loaderfile:URLStream= URLStream(event.target);
var fileData:ByteArray = new ByteArray();
loaderfile.readBytes(fileData, 0, loaderfile.bytesAvailable);
var xmltemp =loaderfile.bytesAvailable;
var filesave:File = File.applicationDirectory;
var pathrelative:String = filesave.nativePath.toString();
filesave.nativePath = pathrelative.substr(0,pathrelative.lastIndexOf("\\ "))+"\\videos\\"+nombrepag;
var stream:FileStream = new FileStream();
stream.openAsync( filesave, FileMode.WRITE );
stream.writeBytes(fileData, 0, fileData.length);
stream.close();
}


Se recorre una lista y voy pasando su respectivo url para descargar el archivo, es decir, hago un llamado a loadafile y le paso como parametro el url. Cuando carga el archivo llama la funcion saveFile para guardarlo.
El problema es el siguiente: la variable nombrepag es una variable global, al parecer hace la carga del primer archivo y mientras sucede esto el nombre del archivo a cambiado, por ejemplo, tengo las siguiente lista de urls http:/video.avi, http:/flash.swf, . Se pasa la url de video.avi aqui inicia la carga de este archivo en memoria y mientrastanto se esta pasando la url del archivo flash.swf lo cual como nombrepag es una variable global se asigna asi nombrepag = "flash.swf" y al final cuando guarda el archivo guarda con el contenido de video.avi pero bajo el nombre de flash.swf y no me guarda el archivo flash.swf.
Intuyo q es problema con la variable global y lo correcto sería pasar la url a la función saveFile para q se guardara bajo el nombre correspondiente, pero.... no conozco la forma de pasar variables
con la propiedad addEventListener. O alguien conoce otra solución???, Gracias por tu aporte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:49.