image
Inicio » Foros » JavaScript

JavaScript

Establecer pausa

Volver al foro | Responder | Añadir nuevo tema


De: Principiante
Fecha: 20/06/2007
Mensaje:

Hola, quisiera saber cómo puedo establecer una pausa entre una serie de imágenes que se visualizan una tras otra tras pulsar un botón, y conseguir que pare la visualización tras mostrar un número predeterminado de imágenes. Sólo he encontrado información para hacerlo con las funciones setTimeout() para ver las imágenes y clearTimeout() para parar el pase de imágenes, pero claro, de esta manera me harían falta 2 botones y sería el usuario el que pararía la ejecución, y mi idea es usar sólo uno que comience a mostrar las imágenes y conseguir que se pare tras mostrar, por ejemplo, 10 imágenes.


Quizás le interese
De: jbosch(vosk)
Util para: 2 personas

Fecha: 21/06/2007
Mensaje:

la idea es que al final de cada ejecucion vuelvas a llamar a la misma funcion, de forma que el usuario solo tiene que iniciar y detener; habrá tres funciones: la primera se encarga de iniciar, la segunda de detener y la tercera será el ciclo

var CCL=false;
var IDC=0;
var MAX=9;
function A() {CCL=true;C();}
function B() {CCL=false;}
function C()
{
if(CCL)
{
/*muestra imagen*/
IDC=(IDC>=MAX)?0:IDC+1;
setTimeout("C()",1000);
}
}

las variables son todas globales: 'CCL' es el frag de ciclo iniciado (true o false), 'IDC' será el indice de la imagen actual (supongo que tendras las imagenes nombradas con un patron de inicide numerico, o como minimo en un array de nombres) y 'MAX' es el número máximo de imagenes (si tienes un array de nombres esto no será necesario). la funcion 'A()' activa el flag del ciclo y ejecuta la primera llamada, la funcion 'B()' finaliza el flag de ciclo, y la funcion 'C()' es el ciclo en si que se actua segun el flag de ciclo iniciado y se rellama a si mismo. ya ves que no cuesta nada.

tambien puedes usar intervalos de ejecucion con 'setInterval(), clearInterval()', que funcionan de forma similar pero si tener que rellamar manualmente. las funciones segun este otro metodo serán

var IDC=0;
var MAX=9;
var I=null;
function A() {I=window.setInterval("C()",1000);}
function B() {window.clearInterval(I);}
function C()
{
/*muestra imagen*/
IDC=(IDC>=MAX)?0:IDC+1;
}

ahora solo estan las variables del contador y el intervalo 'I' (ha de ser global para controlarlo desde distintas funciones). el unico problema es que la primera ejecicion ya illeva un retardo, pero se corrige añadiendo una llamada previa a la funcion de ciclo

function A() {C();I=window.setInterval("C()",1000);}

como ves tambien es muy fácil de implementar.

jbosch(vosk)




Volver al foro | Responder | Añadir nuevo tema

Quizás le interese:

WebEstilo.com no se hace responsable de las opiniones que los usuarios puedan verter en cualquiera de los foros existentes.

Si te solucionó el problema pulsa en G+1


Gracias!






Comparte



Última modificación:31 de Agosto de 2017. Spain - Espa�a.
© 1998-2004 por . Todos los derechos reservados.