Comunidad de diseño web y desarrollo en internet online

Por un simple "for"

Citar            
MensajeEscrito el 02 Nov 2009 11:51 pm
buenas, otra vez con atasco
resulta que traigo una variable desde una Base de datos, la variable la mando al root de esta forma:

Código :

_root.Anno= dato de la BD.

vencido,recojo sus restos y compruebo que su valor es _root.Anno=2009
hasta aqui todo funciona correctamente.
por razones que desconozco, el malefico "For" me responde con un error, un error que me solicita parar el Script, angustiado, "pulso sobre detener el Script"

Código :

for(a=_root.Anno;a<=2050;a++){
   anno.addItem(a+"/"+(a+1))
   
}


que he hecho mal, el maldito "For" continua atacando una y otra vez, y yo, desvalido ante tanta presion , intento desarmar su ataque comprobando que:

Código :

xx=2009
for(a=xx;a<=2050;a++){
   anno.addItem(a+"/"+(a+1))
   
}


Funcionaaa, por el momento estoy seguro....
minutos mas tarde, vuelvo a la carga, seguro que esta vez resistire un nuevo ataque del "For" , puede ser posible que me devuelva un "String" y mi enemigo se aproveche de esta situación para golpearme de nuevo.

convierto, con los poderes "flash" que me han sido revelados, mi "_root.Anno" en numero para estar seguro de repeler el ataque.
"Valgame el cielo, mi capitan", exclama el general Script, no ha resultado, el enemigo nos ataca de nuevo con el mismo error.
He utilizado mi mejor arma

Código :

for(a=Number(_root.Anno);a<=2050;a++){
   anno.addItem(a+"/"+(a+1))
   
}

No consigo detener su persistente error, y vuelvo a detener el Script.
Todo está perdido, cae la noche y poco a poco las fuerzas del ejercito Flash, decaen, los aliados se disponen a partir ,el amanecer traerá la última batalla, vencer o perecer en el intento.

Perdonad por la "Novelación del post", pero este "For" me tiene "frito",porque leo el valor de: "_root.Anno=2009"
y no funciona, pero con:

Código :

xx=2009

funciona perfectamente.

Saludos

Por feisimo

66 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Nov 2009 05:42 am
Ja, ya no veas tantas peliculas :P

Bueno, has comprobado si se ejecutan los valores que quieres que se ejecuten? usa trace.

Código ActionScript :

var a:Number = Number( _root.Anno );
trace( "esto: " + _root.Anno + " deberia ser " + a);
for( ; a <= 2050; a++)
{
   trace( anno +" : "+ a + "/" + (a+1) );
   anno.addItem(a+"/"+(a+1))
}


No se a que te refieras con "error" si error del compilador o de logica, en todo caso, siempre usa trace.

Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 03 Nov 2009 10:12 pm

LongeVie escribió:


Código ActionScript :

var a:Number = Number( _root.Anno );
trace( "esto: " + _root.Anno + " deberia ser " + a);
for( ; a <= 2050; a++)
{
   trace( anno +" : "+ a + "/" + (a+1) );
   anno.addItem(a+"/"+(a+1))
}


No se a que te refieras con "error" si error del compilador o de logica, en todo caso, siempre usa trace.

Suerte.


he probado tu solición pero no da tiempo a ver los traces, se queda pillao y me devuelve este mensaje de error.

Error de Flash escribió:

un script de esta pelicula, esta provocando que flash player se ejecute lentamente, si continua ejecutandose si PC podria no responder. ¿Desea anular el script?


si cambio por esto:

Código :

var a:Number = Number( 2007 );

todo funciona perfectamente y ademas compruebo que el codigo que sigue al bucle me incluye una linea en el "Log" con el dato correcto es decir, _root.Anno=2009

Código :

_root.informeLOG.Log.text+=" Año de la BD: "+_root.Anno+" Var: _root.Anno" +newline


Resultado en el LOG:

Año de la BD: 2009 Var:_root.Anno



deduzco de esto que la variable _root.Anno se recoge correctamente, pero no entiendo porqué en el buche "For", no funciona.

Saludos y gracias.

Por feisimo

66 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2009 05:06 am
Pues lo mas logico es que el problema este en el momento en que le das valor a tu variable Anno, cuando tenga valor, entonces puedes ejecutar al for, sino entra a un ciclo infinito.

var a:Number = Number( _root.Anno );

esta linea se traduciria en esto:

var a:Number = Number( undefined );

y eso es:

var a:Number = NaN;

Not A Number, no es un numero.

lo que significa que el for no puede hacer comprobaciones y se queda en ciclo infinito.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 04 Nov 2009 10:15 pm
la variable _root.Anno, que la recojo de una BD, la compruebo antes y despues de hacer el bucle y es correcta, su valor es 2009
lo he solucionado cogiendo un atajo

como su valor corresponderá siempre con el año actual, utilizo getFullYear y asunto terminado.

con mas tiempo, seguire investigando esto, no me quedo tranquilo sin saber lo que ocurre.

Gracias por tu interés
Saludos y hasta la proxima...

Por feisimo

66 de clabLevel



 

firefox

 

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