elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  No se incrementa variable global enJavaScript
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No se incrementa variable global enJavaScript  (Leído 3,790 veces)
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
No se incrementa variable global enJavaScript
« en: 25 Diciembre 2010, 15:18 pm »

Hola amigos/as como estan?¿

antes que nada desearles una Feliz navidad :)

Bien,a lo que iva,el caso es que tengo una variable global (declarada fuera de las funciones en javascript),y tengo 2 funciones,una que llama a setInterval y este llama a otra fucnion (funcion que teoricamente debe incrementar la variable global,esa variable global es el tiempo del Interval)

queda asin:

Código
  1. <script lenguage="javascript">
  2. var Contador = 200;
  3. var i = 100;
  4. function Animate()
  5. {
  6. var i+=10;
  7. Contador+=2;
  8. var Objeto = document.getElementById("Imagen");
  9. Objeto.style.width = Contador+'px';
  10.  
  11. }
  12. function Start()
  13. {
  14. setInterval("Animate()",i);
  15.  
  16. }
  17.  

la variable "i" no se incrementa,"i" es el tiempo del intervalo,y si se icrementase el intervalo deberia ser mas lasrgo cada vez no?¿

alguna idea?


saludos :D


« Última modificación: 25 Diciembre 2010, 15:20 pm por Riki_89D » En línea

bizco


Desconectado Desconectado

Mensajes: 698


Ver Perfil
Re: No se incrementa variable global enJavaScript
« Respuesta #1 en: 25 Diciembre 2010, 15:27 pm »

estas declarando 2 variables "i", la que esta fuera de la funcion y la que esta dentro.


En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: No se incrementa variable global enJavaScript
« Respuesta #2 en: 25 Diciembre 2010, 15:48 pm »

Hola amigo,dentro de la funcion tambien lo probe sin el "var" osea solo con la "i" pero nada,no incrementa
En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: No se incrementa variable global enJavaScript
« Respuesta #3 en: 25 Diciembre 2010, 16:46 pm »

La función setInterval el problema que tiene es que creo que la variable con la que la inicialices es el valor que tomará como intervalo constante, y no puede cambiar, creo que podrías hacer eso mismo con SetTimeout(), algo así:

Código
  1. <script lenguage="javascript">
  2. var Contador = 200;
  3. var i = 100;
  4.  
  5. function Animate(){
  6. i+=100;
  7. Contador+=2;
  8. document.write(Contador+'px - '+i);
  9. Start();
  10. }
  11.  
  12. function Start(){
  13. setTimeout('Animate()', i);
  14. }
  15.  
  16. Start();
  17. </script>

Obviamente cambia el document.write por tu función, yo puse el document.write simplemente para probarlo y funciona perfectamente.
« Última modificación: 25 Diciembre 2010, 16:48 pm por Spider-Net » En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: No se incrementa variable global enJavaScript
« Respuesta #4 en: 25 Diciembre 2010, 17:49 pm »

Pero setTimeOut solo se ejecuta una ves no?¿
En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: No se incrementa variable global enJavaScript
« Respuesta #5 en: 25 Diciembre 2010, 19:27 pm »

Si, pero si pruebas el código que te he puesto verás que hace lo que querías. setTimeout se ejecuta una vez, pero si lo llamas cada vez que ejecutas tu función consigues el efecto que buscabas. Si lo haces con setInterval, el intervalo es constante y no se consigue ese efecto.
« Última modificación: 26 Diciembre 2010, 15:05 pm por Spider-Net » En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: No se incrementa variable global enJavaScript
« Respuesta #6 en: 26 Diciembre 2010, 17:09 pm »

Hola spider,la verdad si funciona el codigo,i ma so menos hace lo que quiero peor nedesitaria que fuera un pco mas suave la animacion,me esta costando bastante,en otro hilo me dieron un lenace peor no me acabo de enterar mucho,este es el code que tengo acutalmente:
Código
  1. <script lenguage="javascript">
  2. var Velocidad = 1;
  3.  
  4. function Animar()
  5. {
  6. Velocidad+=3;
  7. Objeto = document.getElementById("Imagen");
  8. var Ancho = parseInt(Objeto.style.width);
  9. Ancho+=21;
  10. Objeto.style.width =Ancho+30+'px';
  11. Start_Animate();
  12. }
  13.  
  14. function Start_Animate()
  15. {
  16. setTimeout("Animar()",Velocidad);
  17. }
  18.  
  19. </script>
  20.  


`pongo un IF tmb para que cuando llege al ancho deseado se pare,pero hay2  cosas que no entiendo,como ago para que el ancho se mueva de ambos lados?¿ es que el ancho siempre se mueve por la parte derecha del DIV nunca pro la izquierda pòr que?¿ i lo otr como pueod hacer para que sea mas suave?¿


saludos
En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: No se incrementa variable global enJavaScript
« Respuesta #7 en: 26 Diciembre 2010, 22:57 pm »

Hola de nuevo,bueno ya consegui hacer exactamente el efecto que queria :D

aqui os dejo un pequeño ejemplo que hice,es una tonteria,es mas que nada el efecto que buscava y porfin lo hice:

http://webriki.260mb.com/Easyng.html

por si a alguien le interesa el codigo aqui se lo dejo,de todas formas abran codigos mucho mas profesionales que el mio eso esta claro.

Código
  1. <script lenguage="javascript">
  2. var Incremento = 30;
  3. var Tiempo;
  4. var Incremento2 = 10;
  5. var Tiempo2;
  6. function Animar()
  7. {
  8. Incremento--;
  9. if(Incremento == 0)
  10. {
  11. Start_Animate2();
  12. clearTimeout(Tiempo);
  13. }
  14. else
  15. {
  16. Objeto = document.getElementById("Imagen");
  17. var Ancho = parseInt(Objeto.style.width);
  18. Objeto.style.width =Ancho+Incremento+'px';
  19. Start_Animate();
  20. }
  21. }
  22.  
  23. function Start_Animate()
  24. {
  25. Tiempo = setTimeout("Animar()",20);
  26. }
  27.  
  28.  
  29.  
  30.  
  31.  
  32. function AnimteHeight()
  33. {
  34. Incremento2--;
  35. if(Incremento2 == 0)
  36. {
  37. clearTimeout(Tiempo2);
  38. }
  39. else
  40. {
  41. Objeto2 = document.getElementById("Imagen");
  42. var Ancho2 = parseInt(Objeto.style.height);
  43. Objeto2.style.height =Ancho2+Incremento2+'px';
  44. Start_Animate2();
  45. }
  46. }
  47.  
  48.  
  49. function Start_Animate2()
  50. {
  51. Tiempo2 = setTimeout("AnimteHeight()",20);
  52. }
  53. function Cambia()
  54. {
  55. obj = document.getElementById("Imagen").style.borderColor="white";
  56. document.bgColor="black";
  57. setTimeout("Start_Animate()",500);
  58. }
  59.  
  60. </script>
  61.  

podria aerme ahorrado la creacion de ciertas variables pero bueno eso para cuando lo haga para algun proyecto :)


nada de esto ubiera sido posible sin muchos de aquios lo agradezco amigos :)


saludos y feliz año nuevo :)

En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: No se incrementa variable global enJavaScript
« Respuesta #8 en: 27 Diciembre 2010, 14:48 pm »

Antes que nada enhorabuena Riki_89D por el efecto, porque te ha quedado realmente bien, bastante suave y eficaz, lo único que como ya has dicho yo puliría un poco el código para optimizarlo pero enhorabuena porque has conseguido un buen efecto sin usar frameworks.

Por cierto, como consejo, te diría que te acostumbres a identar tu código porque cuando es corto quizás no haya problemas, pero cuando son cada vez más largos tendrás más problemas para encontrar errores y demás, y además, con un código bien tabulado facilitarás la lectura del mismo a otros programadores y a ti mismo en un futuro.

Un saludo.
En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: No se incrementa variable global enJavaScript
« Respuesta #9 en: 27 Diciembre 2010, 14:52 pm »

Hola Spider-Net,ok tienes razon,pulire el code e intentare ser algo mas organizado xd,bueno lo consegui gracias a bosotro :) soys los mejores :)

muchisimas gracias pro todo y gracias pro el consejo,creeme que lo seguire :D siempre hay que aprender de los demas,yo aprendo de bosotros :)


saludos y feliz año a todos/as
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
SMF: $context variable global
PHP
[KMT] 4 3,178 Último mensaje 2 Enero 2008, 22:02 pm
por [KMT]
variable global
Programación Visual Basic
xexio 8 4,423 Último mensaje 4 Marzo 2010, 22:12 pm
por xexio
¿Que es preferible? Define o variable global
Programación C/C++
Komodo 4 3,381 Último mensaje 11 Septiembre 2010, 21:23 pm
por 16BITBoy
[solucionado] Declarar una variable global « 1 2 »
Programación Visual Basic
CAR3S? 17 9,716 Último mensaje 25 Abril 2011, 04:23 am
por CAR3S?
Problema con variable 'global'
Programación C/C++
xRodak 2 1,956 Último mensaje 7 Febrero 2014, 01:23 am
por xRodak
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines