Comunidad de diseño web y desarrollo en internet online

Verificar Existencia de un archivo (A medio resolver)

Citar            
MensajeEscrito el 27 Ene 2010 12:08 pm
Como les va Amigos?

tengo un proyecto donde me envian un XML con productos.
la consigna es listar los productos mostrando su correspondiente imagen.

inicio la carga del xml y lo recorro generando guardando los datos del producto en un array.

todo bien hasta aquí, el problema es que me han pedido que los productos que no tienen imagen no aparescan en el listado.

el problema ocurre ocurre debido a que el xml no tiene una propiedad de "imagen" sino que la imagen es el nombre de id. por lo tanto tengo que verificar físicamente el archivo con un loadmovie.

Cuando recorro el array "prod" llamo a esta función

Código PHP :

fuction eliminarsinfoto(url, pos){

   fileExists = new LoadVars();
   fileExists.onLoad = function(success) {

      if (success) {
   
      }else{
   
         trace("elimino producto " + url)
         delete prod[pos];
      }
   }

   fileExists.load(url);
}


Funciona perfecto, el único problema es las imágenes que SI existen comienzan el proceso de carga.
si tengo 200 productos con foto, estará cargando 200 imagenes.

existe forma de detener la carga cuando apenas comienza?
he pensado en crear un objeto de carga para usar los eventos onLoadStart onLoadComplete, pero siempre he tenido problemas al usarlos.

alguna recomendación? muchas gracias.

Por arix

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Ene 2010 03:33 pm
Se me ocurre que puedes agregar el evento onEnterFrame al objeto fileExist y dentro de este evento verificar si los bytes leidos es mayor a 4, si es así quiere decir que el archivo si existe y puedes cancelar la carga (eliminando el objeto)

Código :

fuction eliminarsinfoto(url, pos){ 
   fileExists = new LoadVars(); 
   fileExists.onLoad = function(success) { 
       if (success) { 
       }else{ 
          trace("elimino producto " + url) 
         delete prod[pos]; 
      } 
   } 
  fileExists.onEnterFrame = function() { 
     if (this.getBytesLoaded() > 4) delete this;
  }
    fileExists.load(url); 
}

Los bytes leidos deben ser mayor a 4 porque tengo entendido que los primeros cuatro bytes de cada archivo leido en flash corresponde a la información básica, o algo asi.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

firefox
Citar            
MensajeEscrito el 27 Ene 2010 08:57 pm
WOW muchas gracias! no se me habia ocurrido, esta puede ser la mejor solución.
lo voy a probar y comentare.

hasta pronto

Por arix

20 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.