Comunidad de diseño web y desarrollo en internet online

Pausar el action script

Citar            
MensajeEscrito el 16 Oct 2007 11:11 pm
como puedo hace una pausa en un bucle, mas o menos asi.

Mientras que a no llege a 150 seguir:
Esperar 20 segundos;
CONT DEL BUCLE...
a es igual a a mas uno

mas o menos asi un tipo delay :P
Gracias de antemano

Por johnes

17 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Oct 2007 08:07 am
Coloca dentro de la funcion las acciones que quieras que sucedan transcurrido el tiempo del Timeout:

Código :

tiempo= 20000; 
mensaje = "Pasaron "+ tiempo/1000 + " segundos.";
function esperar(mensaje) {
trace(mensaje);// u otras acciones
}
setTimeout(esperar, tiempo, mensaje);

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

firefox
Citar            
MensajeEscrito el 17 Oct 2007 09:29 pm
Gracias!! :D
Me funciono perfecto, excepto por un pequeño inconveniente, como lo hago que funcione en un bucle aparte, p.j:

Funcion holamundo...
DATOS AQUI, ETC
....

///Esto no me lo ace valido \/

for (var q = 1; q<=150; q++) {
setTimeout(holamundo,tiempo);

}

Lo que quiero aqui esque el bucle se espere de alguno manera los segundos que setTimeout especifica

:cry:

Gracias de nuevo, espero alguna respuesta :P

Por johnes

17 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Nov 2007 12:24 pm
alguno sabe hacer una pausa en un bucle??

lo necesito para hacer unos attachmovie, atacho y hago pausa, atacho y hago pausa,atacho y hago pausa....

se os ocurre algo???

Por clipdepelicula

237 de clabLevel



 

Valencia (España)

firefox
Citar            
MensajeEscrito el 23 Nov 2007 01:49 pm
No attaches dentro de un bucle.

Crea una función que attache una sola pelicula y que se autollame con un setTimeOut, (despues de cierto tiempo), y que vaya incrementando el contador de la pelicula que se va atachando.

y fuera de la función solo llama una sola vez a la función, y automaticamente se disparan los llamados consecutivos sin un bucle.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 25 Nov 2007 09:10 pm
he hecho lo que dices, lo que no entiendo es que la "i" se me suma exponencialmente en vez de 1 en 1. es decir, primero vale 1, luego 2 luego 4 luego 8...pq me pasa esto?

i = 0;
function AtachaClip() {
i++;
elclip = attachMovie("clip", "clip"+i, i);
var myTween:Tween = new Tween(elclip, "_alpha", mx.transitions.easing.Elastic.easeOut, 0, 100, 5, true);
elclip._x = inix+incrx;
elclip._y = iniy+incry;
incrx += separacionx;
if (incrx>Stage.width) {
incrx = incini;
incry += separaciony;
}
if (i<total) {
setInterval(AtachaClip,1000);
}
}
AtachaClip();

Por clipdepelicula

237 de clabLevel



 

Valencia (España)

firefox
Citar            
MensajeEscrito el 26 Nov 2007 01:52 pm
¿Este codigo lo tienes dentro de un FOR?

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 26 Nov 2007 02:31 pm
no

Por clipdepelicula

237 de clabLevel



 

Valencia (España)

firefox
Citar            
MensajeEscrito el 19 Sep 2008 05:08 pm
pregunta ... yo tengo que correr algo parecido en algo simple :





Código :

D1 = random(20)+1;
if (D1 == 20)
{
e1._visible = 1;
f1._visible = 0;
}
if (D1 == 1)
{
e1._visible = 0;
f1._visible = 1;
}
T1 = number(B1)+ number(D1);



eso dentro de un while que se repite N veces .. pero quiero que haga una pausa de unos segundos entre ciclo y ciclo del while no hay algo tipo Sleep o pause o wait .. nada complicado y de una sola linea ?

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Sep 2008 06:09 pm
No para eso que qieres no se debe utilizar ningún tipo de ciclo, por ejemplo si pones:

Código ActionScript :

var n:Number = 0;

while(n < 100){

   unClip._x++;
   n++;

}


No vas a animar el clip, cuando lo ejecutes el clip estará en la posición final, pues todo ese ciclo se ejecutó en fracciones de milisegundos.

En tu caso debes utilizar un setInterval, que lo que hace es llamar a una función cada x milisegundos, en este caso la llamaremos cada 1 segundo:

Código ActionScript :

var intervalo:Number = setInterval(mueveClip, 1000);
var n:Number = 0;

function mueveClip():Void{
   
   if(n < 100){
      
      unClip._x++;
      n++;
      
   }else{
      
      clearInterval(intervalo);
      
   }
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Sep 2008 10:47 pm

elchininet escribió:

No para eso que qieres no se debe utilizar ningún tipo de ciclo, por ejemplo si pones:

Código ActionScript :

var n:Number = 0;

while(n < 100){

   unClip._x++;
   n++;

}


No vas a animar el clip, cuando lo ejecutes el clip estará en la posición final, pues todo ese ciclo se ejecutó en fracciones de milisegundos.

En tu caso debes utilizar un setInterval, que lo que hace es llamar a una función cada x milisegundos, en este caso la llamaremos cada 1 segundo:

Código ActionScript :

var intervalo:Number = setInterval(mueveClip, 1000);
var n:Number = 0;

function mueveClip():Void{
   
   if(n < 100){
      
      unClip._x++;
      n++;
      
   }else{
      
      clearInterval(intervalo);
      
   }
   
}




sorry mi pregunta soy nuevo en esto ... o sea no pauso el ciclo en el medio sino que llamo el random N veces cada 3 segundos por ejemplo algo asi ?

es un boton ke al apretar tira los dados de un valor N veces ..y si me pasa eso finaliza ya con el ultimo valor.
Gracias voy a analizar el codigo a ver si lo hago de esa forma ...Gracias !

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Sep 2008 11:18 pm
Como bien te dije anteriormente no puedes pausar un ciclo, estos se ejecutan en milésimas de milisegundos, lo que puedes hacer es un setInterval que llame a una función cada x segundos:

Código ActionScript :

var veces:Number = 0;
var totalVeces:Number = 5;

//---Función de ejecutar el código
function ejecuta():Void{

   D1 = Math.round(Math.random() * 20);

   if (D1 == 20) {
      
      e1._visible = 1;
      f1._visible = 0;
      
   }else if (D1 == 1) {
      
      e1._visible = 0;
      f1._visible = 1;
      
   }

   T1 = Number(B1) + Number(D1);
   
   //---Sumar la cantidad de veces
   veces++;
   
   //---Al llegar al total inicializar la variable veces y detener el intervalo
   if(veces == totalVeces){
      
      veces = 0;
      clearInterval(intervalo);
      
   }

}

//---Comenzar a ejecutar la función cada 5 segundos
var intervalo:Number;

function startIntervalo():Void{
   
   intervalo = setInterval(ejecuta, 5000);
       ejecuta();
   
}


cuando quieras que se comience a ejecutar solo llamas a la función que comienza el intervalo:

Código ActionScript :

startIntervalo();


Y la función "ejecuta" con tu código dentro se ejecutará la cantidad de veces que le hayas aclarado en la variable "totalVeces" cada 5 segundos.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Sep 2008 11:25 pm
Consulta :

unClip._x++; < ---------------- y esto que hace ?? incrementa en uno el valor X de un clip llamado "unclip" :oops:
n++; < ---------------- esto incrementa el valor N en 1 ..


igualmente te aviso que funciono ..recien lo puse en el primer rango de dados.




[url=]htt://www.manthys.com.ar/test/calculador.swf[/url]


lo que si no ,me parece que quedan desfasados los botones secundarios ( del lado derecho los rojos y verdes , un 20 saca un verde y un 1 un rojo )

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Sep 2008 11:31 pm

elchininet escribió:

Como bien te dije anteriormente no puedes pausar un ciclo, estos se ejecutan en milésimas de milisegundos, lo que puedes hacer es un setInterval que llame a una función cada x segundos:

Código ActionScript :

var veces:Number = 0;
var totalVeces:Number = 5;

//---Función de ejecutar el código
function ejecuta():Void{

   D1 = Math.round(Math.random() * 20);

   if (D1 == 20) {
      
      e1._visible = 1;
      f1._visible = 0;
      
   }else if (D1 == 1) {
      
      e1._visible = 0;
      f1._visible = 1;
      
   }

   T1 = Number(B1) + Number(D1);
   
   //---Sumar la cantidad de veces
   veces++;
   
   //---Al llegar al total inicializar la variable veces y detener el intervalo
   if(veces == totalVeces){
      
      veces = 0;
      clearInterval(intervalo);
      
   }

}

//---Comenzar a ejecutar la función cada 5 segundos
var intervalo:Number;

function startIntervalo():Void{
   
   intervalo = setInterval(ejecuta, 5000);
       ejecuta();
   
}


cuando quieras que se comience a ejecutar solo llamas a la función que comienza el intervalo:

Código ActionScript :

startIntervalo();


Y la función "ejecuta" con tu código dentro se ejecutará la cantidad de veces que le hayas aclarado en la variable "totalVeces" cada 5 segundos.




ok pero esto no es para cargarlo en el "boton" sino en la raiz me imagino .. en el boton cargo la llamada a la funcion Startintervalo

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Sep 2008 11:33 pm
La consulta que estás haciendo no tiene que ver con tu ejercicio, fue un ejemplo que te puse como si quisieras que un clip fuera moviéndose en las "_x" poco a poco para que entendieras que con un ciclo no lo ibas a lograr y si con un setInterval, solo para que entendieras como funcionaba este último y lo aplicaras a tu ejercicio. Pero te respondo la consulta de todas maneras, hace eso mismo que me preguntas.

Ahora con esto:

lo que si no ,me parece que quedan desfasados los botones secundarios ( del lado derecho los rojos y verdes , un 20 saca un verde y un 1 un rojo )


Te refieres a un problema que tienes, porque en realidad no entiendo a que te refieres.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Sep 2008 11:53 pm
pense que habias visto la animacion en el link sorry.

me parecio .. pero igual la puse jejeje ahora la saco.

Gracias igualmente por el tiempo .. ahora me voy a poner a jugar un poco con el orden para ver si eso me causo el desfasaje de los otros botones.


See u

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 20 Sep 2008 12:09 am
No entiendo el orden de las respuestas del post, apareció una respuesta que no había visto.

pense que habias visto la animacion en el link sorry.
me parecio .. pero igual la puse jejeje ahora la saco.


Vi la animación, pero sigo sin entender esto:

lo que si no ,me parece que quedan desfasados los botones secundarios ( del lado derecho los rojos y verdes , un 20 saca un verde y un 1 un rojo )

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Sep 2008 03:40 pm

elchininet escribió:

No entiendo el orden de las respuestas del post, apareció una respuesta que no había visto.

pense que habias visto la animacion en el link sorry.
me parecio .. pero igual la puse jejeje ahora la saco.


Vi la animación, pero sigo sin entender esto:

lo que si no ,me parece que quedan desfasados los botones secundarios ( del lado derecho los rojos y verdes , un 20 saca un verde y un 1 un rojo )



si perdon ..paso a explicar ..
1 ) lo de " me parecio pero igual lo puse... " era en referencia al codigo generico que te habia preguntado antes.

2 ) lo de los botones es porque cuando tiras el "rolear" si sacas un 1 te pone un boton rojo y si sacas un 20 te pone un boton verde, si tiras vas a ver que cuando sale un 20 no aparece el boton verde sino hasta despues que volves a apretar el " rolear" (fijate que las que no tienen el delay aparece el boton con el 1 o el 20 como corresponde ) ... igual no te preocupes veo si lo puedo sacar yo .. te agradezco por el tiempo.

Gracias.

Por edejuana

13 de clabLevel



 

msie7

 

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