Comunidad de diseño web y desarrollo en internet online

Problema con el try/catch

Citar            
MensajeEscrito el 13 Mar 2009 11:45 am
Hola amigos flasheros, tengo un problemilla y no se me ocurre por que es.

En el codigo de a continución lo que quiero hacer es que cargue imagenes dentro un MC, lo cual funciona todo correctamente, ahora lo que no me esta funcionando es el Catch.
Porque digo esto, porque en la consola me sale :
"Error al abrir la URL 'file:///.../logos/logo7.jpg'"
Obviamente ese archivo no existe, entonces deberia salir por el catch y salir del For.
Todo funciona correctamente, salvo que quiero que cuando llegue a una imagen que no existe, salga del FOR.

Espero alguna respuesta, Gracias :shock:



Código :

for(a=0; a<nlist.length; a++){
      try {
      imagen=nlist[a];      
      _root.mcfondosgeneL.txt.attachMovie("mcsellogos", imagen, nivelAttach);
      nivelAttach++;
      loadMovie("datos/logos/" + imagen + ".jpg", eval("_root.mcfondosgeneL.txt." + imagen).dest);      
      //posicion
      if(nivelAttach==1){
         eval("_root.mcfondosgeneL.txt." + imagen)._x=xini;
         eval("_root.mcfondosgeneL.txt." + imagen)._y=yini;            
         xnew=xini;
      } else {
         xnew=xnew+225;
         if(xnew>=225*xmax){               
            factY++;
            xnew=xini;
            eval("_root.mcfondosgeneL.txt." + imagen)._x=xnew;
            eval("_root.mcfondosgeneL.txt." + imagen)._y=yini + 165*factY;
         } else {
            if(factY==0){
               eval("_root.mcfondosgeneL.txt." + imagen)._x=xnew;
               eval("_root.mcfondosgeneL.txt." + imagen)._y=yini;
            } else {
               eval("_root.mcfondosgeneL.txt." + imagen)._x=xnew;
               eval("_root.mcfondosgeneL.txt." + imagen)._y=yini + 165*factY;
            }               
         }         
      }
      }catch(e:Error){
         trace("ERRORRRRRRRRR");
         break;
      }
   }

Por PolStax

19 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Mar 2009 11:52 am
Try/catch y eval juntos ... vaya ensalada.
El try/catch permite pillar errores fatales para que tu peli no se quede congelada. Intentar cargar una imagen que no existe no es un error fatal, con lo cual solo te avisa por consola. Si usas AS2, para comprobar una imagen puedes usar el truco del LoadVars, es decir cargas por LoadVars la imagen, en el onLoad te da true si existe y false sino, luego ya la cargas o no dependiendo de eso

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Mar 2009 11:19 am
Hola Jorge, no logro entender al 100% lo que me queres decir. O sea por LoadVars yo cargaria los nombres de los archivos "logo1 , logo2, logo3" digamos lo que ahora mismo tengo un array, un nombre de archivo por variable.

Luego no entiendo la parte que me dices del onLoad.
Si podrias ser mas especifico te lo agradeceria.

Yo ahora mismo tengo el siguiente array : imagenes = [logo1, logo2, logo3, logo4, logo5, logo6, logo7] Hasta 20, que es el limite que quiero. Cada "logoN" .png serian los archivos que yo tengo en la carpeta pero cuando se corta(o sea que no exista) no deberia cargar mas imagenes o sea no deberia ejecutarse mas el For.

Por PolStax

19 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2009 11:38 am
Para comprobar si una imagen existe

Código ActionScript :

var check = new LoadVars()
chek.onLoad = function(ok){
  if(ok){
    trace("Existe")
  } else {
   trace("No existe")
 }
}
check.load("algun.png")


Ese es el principio, ahora lo debes adaptar a tu problema en particular

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Mar 2009 12:43 pm
Hol Jorge, sigo sin entender muy bien lo que me quieres indicar, lo que yo entiendo en tu ejemplo es que ponga lo que tengo en el array en un fichero de texto para luego cargarlo como variable, pero ahi me esta checkeando si la variable existe, no si la imagen existe, ya que la esta agregando al final de la funcion ( check.load("algun.png") ).
Segun lo que entiendo en el fichero de texto deberia tener algo asi "logo1=logo1&logo2=logo2&etc... hasta el logo 20.
pero entonces las 20 variables existen por lo tanto siempre me daria ok, ¿pero que pasa si solo tengo 3 logos .png en la carpeta?

tal vez estoy muy bloqueado hoy por ser Lunes, pero bueno estoy haciendo un Upgrade a una aplicación y de ahi viene la ensalada mixta ya que yo no la cree desde cero. Un abrazo genio

Por PolStax

19 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2009 12:57 pm
Nop, nada de ficheros de texto.
Haz la siguiente prueba, copia y pega el code que te puse. Pon "algun.png", en el onLoad recibirás true, quítalo, en el onLoad recibirás false, así funciona el truco. Si recibes true, entonces ya puedes hacer la carga normal.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Mar 2009 01:13 pm
Ahora entiendo lo que me dices, pero al copiarlo al primer frame me salta el siguiente error :

1180: Llamada a un método LoadVars posiblemente no definido.

Estoy mirando un tuto tambien y lo tiene escrito igual que vos lo pusiste.

El error es cierto :S

var pepe:LoadVars = new LoadVars();

pepe.onLoad = function(ok){
if(ok){
trace("Existe") ;
} else {
trace("No existe");
}
}
pepe.load("algun.png");

Por PolStax

19 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2009 02:20 pm
Tienes que publicar para AS2, el código que posteaste está en AS2

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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