Foros del Web » Creando para Internet » Flash y Actionscript »

Detener un bucle for por unos segundos

Estas en el tema de Detener un bucle for por unos segundos en el foro de Flash y Actionscript en Foros del Web. Hola!! Hice un bucle o ciclo For() para agrandar un clip de pelicula, hasta ahi todo bien lo hace perfectamente, pero el problema es que ...
  #1 (permalink)  
Antiguo 29/05/2008, 11:35
Avatar de happy1783  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 146
Antigüedad: 9 años, 6 meses
Puntos: 1
Mensaje Detener un bucle for por unos segundos

Hola!!

Hice un bucle o ciclo For() para agrandar un clip de pelicula, hasta ahi todo bien lo hace perfectamente, pero el problema es que lo hace muy rapido, el MC se agranda muy rapido y no se ve el efecto.

Lo que quiero es detener el for por ciertos segundos para que se vea despacio cuando se agranda el clip.

aqui les pongo el script.

on (press) {
var j=getProperty(_parent._parent._parent.homei,_width );
for(var i=j; i<=j+10; i++)
{
setProperty(_parent._parent._parent.homei,_width,g etProperty(_parent._parent._parent.homei,_width)+i );
setProperty(_parent._parent._parent.homei,_height, getProperty(_parent._parent._parent.homei,_height) +i);
setProperty(_parent._parent._parent.homei,_x,getPr operty(_parent._parent._parent.homei,_x)-500);
setProperty(_parent._parent._parent.plano1,_width, getProperty(_parent._parent._parent.plano1,_width) +i);
setProperty(_parent._parent._parent.plano1,_height ,getProperty(_parent._parent._parent.plano1,_heigh t)+i);

}
}

Gracias.
  #2 (permalink)  
Antiguo 29/05/2008, 12:19
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 9 años, 7 meses
Puntos: 22
Respuesta: Detener un bucle for por unos segundos

Hola,
Lo de detener un bucle es bastante compliocado por no decir imposible.
Creo que si lo quieres es agrandar un MC, hay una solución mucho más sencilla que la que has tomado. Es utilizar el COMPONENTE TWEEN. Sirve para hacer animaciones "virtuales" y puedes controlar la velocidad. Te paso un enlace donde he puesto un archivo descargable con ejemplos de cómo utilizarlo. En tu caso, tendrías que utilizar la función de los ejemplos con:

_root.motionOnClip(instancia1, "_xscale", mx.transitions.easing.Elastic.easeInOut, 100, 200, 40, false);
_root.motionOnClip(instancia1, "_yscale", mx.transitions.easing.Elastic.easeInOut, 100, 200, 40, false);

Donde "instancia1" sería el nombre de tu MC, "100" el escalado normal, "200" el escalado final y 40 son los fotogramas que tardará en hacerlo.

Si cambias la palabra "Elastic" por "Regular", la animación tiene otro "carácter". Se trata de ir probando.


El enlace es: http://www.programador-php.com/flash...ente_tween.php
Saludos
__________________
Compartir es vivir
www.programador-php.com
  #3 (permalink)  
Antiguo 29/05/2008, 12:32
Avatar de happy1783  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 146
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Detener un bucle for por unos segundos

Hola exangel

gracias por tu ayuda.

Tengo un problemita no me funciona me podrias ayudar lo hice asi.

_root.motionOnClip(_parent._parent._parent.homei, "_xscale", mx.transitions.easing.Elastic.easeInOut, getProperty(_parent._parent._parent.homei,_xscale) , getProperty(_parent._parent._parent.homei,_xscale) +500, 40, false);
_root.motionOnClip(_parent._parent._parent.homei, "_yscale", mx.transitions.easing.Elastic.easeInOut, getProperty(_parent._parent._parent.homei,_yscale) , getProperty(_parent._parent._parent.homei,_yscale) +500, 40, false);
  #4 (permalink)  
Antiguo 29/05/2008, 14:26
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 9 años, 7 meses
Puntos: 22
Respuesta: Detener un bucle for por unos segundos

Hola,
La función "motionOnClip" está en el _ROOT???
Si es así, por lo que veo en el código, estás llamando a la función desde un CLIP que está a 3 niveles de tu CLIP "homei".

Si esto es así también, lo que no entiendo es porqué usas "getProperty".
Ese término creo que está en desuso. Simplemte tienes que poner lo siguiente

_root.motionOnClip(_parent._parent._parent.homei, "_yscale", mx.transitions.easing.Elastic.easeInOut, _parent._parent._parent.homei._yscale , _parent._parent._parent.homei._yscale +500, 40, false);

Si no te funciona, debe de ser porque las rutas de llamada (_parent._parent. etc) están mal.

Sigue mirándolo a ver si lo encuentras. En principio la función de MOTION funciona.
Saludos
__________________
Compartir es vivir
www.programador-php.com
  #5 (permalink)  
Antiguo 29/05/2008, 14:40
Avatar de happy1783  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 146
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Detener un bucle for por unos segundos

ok!!

muchas gracias.

ya funciona.

ahora necesito que cuando termine de agrandar la imagen me cargue un swf externo que tengo.

ya se como cargarlo, pero no se como hacer para que me cargue cuando termine de agrandar la imagen.

Gracias de nuevo.
  #6 (permalink)  
Antiguo 29/05/2008, 15:35
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 9 años, 7 meses
Puntos: 22
Respuesta: Detener un bucle for por unos segundos

Fácil:
Fíjate en la function MOTION, tiene una parte que "dice" lo siguiente:

myTween.onMotionFinished = function() {

PUES AQUI, LE PONES LO QUE QUIERAS QUE HAGA

delete myTween;//ESTA NO LA BORRES

};

Está muy bien esto del componente TWEEN ¿Verdad?
__________________
Compartir es vivir
www.programador-php.com
  #7 (permalink)  
Antiguo 30/05/2008, 09:16
Avatar de happy1783  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 146
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Detener un bucle for por unos segundos

Hola!!

muchas gracias por tu ayuda funciona muy bien, en verdad es muy bueno el tween.

ahora tengo otro problema y necesito tu ayuda de nuevo.

lo estoy tratando de implementar en otro MC, mira tengo lo siguiente.

en un MC tengo otros tres MC que van a ser invocados externamente.

dentro de uno de los tres MC tengo un botón, lo que quiero hacer es que cuando se le de clic a ese botón haga el efecto _alpha para que se desvanesca el MC principal, es decir en el que se encuentran los otros tres MC.

el MC principal tiene por nombre de instancia mcpisos y dentro de este estan los otros tres MC, el MC que tiene el botón tiene por nombre de instancia mctv y el botón que esta dentro de este tiene este script.

on (press) {
motionOnClip(_parent._parent._parent.mcpisos_alpha ", mx.transitions.easing.Regular.easeInOut, 100, 0, 40, false);
}
  #8 (permalink)  
Antiguo 30/05/2008, 09:39
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 9 años, 7 meses
Puntos: 22
Respuesta: Detener un bucle for por unos segundos

La función "motionOnClip" deberías tenerla en el _root y así la llamas desde donde quieras.
Si eso es así, te falta el "_root.motionOnClip(etc....)"
__________________
Compartir es vivir
www.programador-php.com
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 18:52.