Foros del Web » Programando para Internet » Javascript »

Sacar variable de una función.

Estas en el tema de Sacar variable de una función. en el foro de Javascript en Foros del Web. Hola buenos días, estoy trabajando en un script que me hace un slide de código, en el cual, cuando pones el cursor encima se detiene, ...
  #1 (permalink)  
Antiguo 11/02/2010, 03:21
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 14 años, 4 meses
Puntos: 0
Sacar variable de una función.

Hola buenos días, estoy trabajando en un script que me hace un slide de código, en el cual, cuando pones el cursor encima se detiene, y luego se vuelve a reanudar.

Me gustaría saber si se puede sacar una variable definida en una función al script global, y en el caso de que se pudiera, saber cómo hacerlo.

Dejo el código aquí para que os podais hacer una idea, gracias.

Código:
tm = 0;
tm2 = 143;
tm3 = 286;
tm4 = 429;
function timer1(){
   document.getElementById('capa1').style.top = tm;
   document.getElementById('capa2').style.top = tm2;
   document.getElementById('capa3').style.top = tm3;
   if(tm<=-143){
      tm = 429;
   }else if(tm2<=-143){
      tm2 = 429;
   }else if(tm3<=-143){
      tm3 = 429;
   }else if(tm4<=-143){
      tm4 = 429;
   }else{
      tm--;
      tm2--;
      tm3--;
      tm4--;
   }
}
var repetir = setInterval("timer1()",60);

function seguir(){
	var repetir = setInterval("timer1()",60);
}
	
function detener(){
	clearInterval(repetir);	
}
  #2 (permalink)  
Antiguo 11/02/2010, 09:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Sacar variable de una función.

No entiendo muy bien tu pregunta, todas las variables que estás usando dentro de la función (tm, tm2, tm3 y tm4) tienen alcance global.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 11/02/2010, 11:05
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Sacar variable de una función.

Gracias por tu respuesta David. Sí efectivamente, las tm son de alcance global, lo que quiero hacer es justo lo contrario.

En este caso lo que hago es llamar a las variables desde dentro de la función, lo que quisiera es llamar desde fuera a las de dentro. No se si me explico.

Os daré un ejemplo.

Pepe está fuera de casa.
Paco está dentro de casa.

Paco llama a Pepe y pepe entra.
Cómo puede llamar pepe a paco para que paco salga?

Jajajaja, es un poco infantil, pero espero que así me entendais.

Muchas gracias :)
  #4 (permalink)  
Antiguo 11/02/2010, 11:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Sacar variable de una función.

De verdad, no entiendo lo que tratas de hacer. ¿Alguna aplicación práctica? ¿Un código de ejemplo?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 11/02/2010, 11:18
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Sacar variable de una función.

Hola:

Si, si... realmente rara la pregunta... yo tampoco me entero, pero, si quieres que no se use una variable local en vez de la local, podrías llamarla en el propio comando... pero no te serviría setInterval... tal vez setTimeout... por ejemplo...

setTimeout("timer1(" + tm + ")", retardo);

Aunque la declaración de la función sería distinta...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 12/02/2010, 09:22
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sacar variable de una función.

Cita:
Iniciado por dannytm Ver Mensaje
Gracias por tu respuesta David. Sí efectivamente, las tm son de alcance global, lo que quiero hacer es justo lo contrario.

En este caso lo que hago es llamar a las variables desde dentro de la función, lo que quisiera es llamar desde fuera a las de dentro. No se si me explico.

Os daré un ejemplo.

Pepe está fuera de casa.
Paco está dentro de casa.

Paco llama a Pepe y pepe entra.
Cómo puede llamar pepe a paco para que paco salga?

Jajajaja, es un poco infantil, pero espero que así me entendais.

Muchas gracias :)
Me parece que lo estás haciendo al revés. Si querés que la función trabaje con una variable global, deberías siempre acceder a la global y asunto arreglado.

Además en tu ejemplo no aparece ninguna variable local, por lo que resulta difícil saber a qué te refieres.
  #7 (permalink)  
Antiguo 16/02/2010, 03:36
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Sacar variable de una función.

Lo que quiero hacer exactamente, es esto:

Tengo un slyde de imágenes, que jon el setInterval consigo mover, lo que quiero es detenerlo, lo consigo, también consigo que se reanude, pero al estar la reanudación dentro de una función no puedo detenerla de nuevo, es por eso que quiero sacar de la función esta variable y volverlo a detener, es un poco lioso :P. Pero seguro que vosotros, grandes sabios de Javascript me dais otra solución para este problemilla :)

Código:
var repetir = setInterval("timer1()",60); //Declaro el Intervalo.

function seguir(){
	var repetir = setInterval("timer1()",60);
// Aquí reanudo el intervalo, y es la variable que quiero sacar de la función.
}
	
function detener(){
	clearInterval(repetir);	
// Aquí detengo el intervalo.
}
A ver si con esta aclaración me comprendeis, muchas gracias.
Saludetes!!
  #8 (permalink)  
Antiguo 16/02/2010, 04:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Sacar variable de una función.

No uses var, ya que si lo usas la variable sólo pertenece al ámbito de la función.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 16/02/2010, 04:30
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Sacar variable de una función.

Entonces pongo

var repetir = setInterval("timer1()",60); //Declaro el Intervalo.

function seguir(){
repetir = setInterval("timer1()",60);
// Aquí reanudo el intervalo, y es la variable que quiero sacar de la función.
}

function detener(){
clearInterval(repetir);
// Aquí detengo el intervalo.
}


Y modificará la variable global?
  #10 (permalink)  
Antiguo 16/02/2010, 04:36
 
Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Sacar variable de una función.

Ohhhhhh, perfecto, fantástico, maravilloso!!!!!!

Funciona a la perfección, muchísimas gracias :D

Etiquetas: variables
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:08.