Comunidad de diseño web y desarrollo en internet online

Realizar pausa entre dos llamadas a una función

Citar            
MensajeEscrito el 09 Dic 2011 11:49 am
Hola a todos, no se habré sido lo suficientemente explícita en mi título para deciros lo que me pasa. Para comenzar deciros que soy novatísima en AS3!

Vereis, tengo un proyecto, en el primer fotograma tengo todo el código AS y ahí lo cargo todo. En concreto son 5 imágenes que cargo de un XML y muestro en el escenario con ayuda de la clase Tween para mejorar los efectos visuales de aparición de los elementos.

El caso es que necesitaría que esas 5 imágenes aparecieran de 1 en 1, es decir, primero la imagen A, cuando acabe su animación (con la clase Tween), la imagen 2 ... y es lo que no se hacer ... Se hacer una pausa de X segundos en un frame, pero lo que yo quisiera es hacerla en el mismo frame ... no se si me expliqué ... sino, digánmelo e intentaré hacerlo mejor.

Muchas gracias de antenamo

Por mariamm

10 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 09 Dic 2011 01:07 pm
Para llamar una función cada determinado tiempo puedes usar la clase Timer, aquí por ejemplo la uso cada 3 segundos

Código ActionScript :

function muestra(evt:TimerEvent):void{
   //lo que sea
}
var tick:Timer = new Timer(3000);
tick.addEventListener(TimerEvent.TIMER, muestra);
tick.start();


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Dic 2011 02:00 pm
Muchas gracias, probaré esto y os comentaré que tal me fue ... pero el Lunes ... que ya nos vamos del trabajo ... me voy a quedar con las ganas de mirarlo! :roll:

Por mariamm

10 de clabLevel



Genero:Femenino  

msie
Citar            
MensajeEscrito el 12 Dic 2011 12:07 pm
Uf, de momento no lo conseguí ... pero creo que ya es por mi culpa, que algo no hago bien :oops: ... así que seguiré dándole vueltas y si veo que no puedo os pediré ayuda de nuevo ...

Ummm, bueno, pondré aquí algo por si alguien ve que estoy haciendo algo mal ...

Me creo tres loaders para tres imágenes y cada una tendrá un listener que se ejecutará cuando la carga se haya realizado, las tres imágenes llaman a lamisma función, hago esto:

Código ActionScript :

var foto1:Loader = new Loader();
var foto2:Loader = new Loader();
var foto3:Loader = new Loader();


foto1.contentLoaderInfo.addEventListener(Event.COMPLETE, Callback.create(onComplete,30,30, url1));
foto1.load(new URLRequest(img1));

foto2.contentLoaderInfo.addEventListener(Event.COMPLETE, Callback.create(onComplete,30, 440, url2));
foto2.load(new URLRequest(img2));

foto3.contentLoaderInfo.addEventListener(Event.COMPLETE, Callback.create(onComplete,707, 440, url3));
foto3.load(new URLRequest(img3)); 


A la función onComplete le estoy pasando la posición dónde irán las imagenes ... Esta es la función :

Código ActionScript :

function onComplete(e:Event, posx:int, posy:int, url:String):void{
   var boton_img:MovieClip = new MovieClip();
      var fotoBitmap:Bitmap = e.target.content;
    fotoBitmap.smoothing = true;
    boton_img.addChild(fotoBitmap);    
   if (url != "") {
      boton_img.addEventListener(MouseEvent.CLICK, Callback.create(mouseDownImage, url));
      boton_img.buttonMode = true;
      boton_img.useHandCursor = true; 
   }   
     boton_img.x = posx;
    boton_img.y = posy;      
   addChild(boton_img);
   var myTween1:Tween = new Tween(boton_img, "x", Elastic.easeOut, boton_img.x+boton_img.width/2, boton_img.x, 2, true);
    var myTween2:Tween = new Tween(boton_img, "y", Elastic.easeOut, boton_img.y+boton_img.height/2, boton_img.y, 2, true);
    var myTween3:Tween = new Tween(boton_img, "width",  Elastic.easeOut, 10, boton_img.width, 2, true);
    var myTween4:Tween = new Tween(boton_img, "height",  Elastic.easeOut, 10, boton_img.height, 2, true);
}


Y creo que no se como ponerlo para que me aparezcan en pantalla de 1 en 1 :roll:

...

Que desesperación ... :(

Por mariamm

10 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 12 Dic 2011 12:08 pm
Ah! en "url1", "url2" y "url3" le paso la URL donde tendrán que ir al hacer clic sobre la imagen en sí.

Gracias

Por mariamm

10 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 12 Dic 2011 12:18 pm
¿Y por que no reutilizas el mismo Loader en vez de usar tres distintos?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Dic 2011 12:23 pm
En su momento lo intenté, pero no fui capaz ... me cargaba todas las imágenes en el mismo sitio ... es que estoy muy pez :(

Por mariamm

10 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 13 Dic 2011 06:49 am
Creo que a lo que te refieres es que una función se ejecute después de otra, ¿no?
Si es eso, te explico cómo es que yo lo haría.

De entrada no usaría la clase esa fea de Tween. Usaría La clase de greensock: http://www.greensock.com (dale una revisada, léela y igual te gusta más).

Luego, ya que comprendas un poco de las clases de greensock verás que puedes hacer tweens sobre un objeto con muy pocas líneas a diferencia de la clase Tween, dónde necesitas definir propiedad por propiedad y descubrirás que tiene un gestor de eventos MUY MUY útil para lo que tú estás buscando.

Por lo pronto te ayudo explicándote como transformar tus tweens a la sintaxis de greensock:

Código :

//lineas para importar las clases
import com.greensock.*
import com.greensock.easing.*
//linea de ejemplo para que entiendas de qué va la cosa
TweenMax.to(movieClip,duración-del-tween,{propiedades-a-modificar:valor,ease:curvademovimiento,delay:tiempodedelay,onComplete:funcion-a-ejecutar});

//Se me ocurre que puedes poner tus 3 animaciones, cada una en una funcion e ir llamándolas con el gestor de eventos (en la parte de "onComplete:siguienteAnimacion")

//onComplete, lo que hace es ejecutar la función que tú le digas al terminar de hacer el tween


Si te animas por usar este método, y te atoras en algo, avísame que yo te explico.

Por julioealonso

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Dic 2011 09:32 am
Muchísimas gracias!

me voy a poner a ello ... la verdad que la clase Tween me está dando muchos quebraderos de cabeza, las animaciones se me quedan paradas a veces a la mitad :( ... y estoy totalmente desquiciada buscando alguna solución ... para alguien que viene de AS2 ... esto es un mundo!

Muchas gracias, voy a hacer el cambio a la librería que me comentas y ya digo algo!

Por mariamm

10 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 13 Dic 2011 11:27 am
Ya lo he conseguido con esta clase! Es genial ... las animaciones no se me quedan pilladas, al menos por ahora (tocaré madera).

El único problema que tengo ahora y que llevo un ratillo intentando solventar es que las imagenes deberían aparecer agrandándose desde el centro, es decir como si la imagen apareciera desde la nada ampliándose hasta tener su tamaño real ... y no soy capaz de hacer esto con la librería, seguiré, no obstante revisando y mirando más cosas de la clase, a ver si doy con la tecla ...

Muchas gracias

Por mariamm

10 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 13 Dic 2011 06:16 pm
Revisa el pivote de los movieclip. Debería estar en el centro, puedes usar algo como:

Código ActionScript :

TweenMax.from(movieClip,1,{scaleX:0,scaleY:0,alpha:0})


O podrías asignar posiciones iniciales dentro de la función:

Código ActionScript :

function animacion1():void{
movieClip1.alpha=0;
movieClip.scaleX=0;
movieClip.scaleY=0;
TweenMax.to(movieclip1,{scaleX:1,scaleY:1,alpha:1});
};


Avísame cómo va la cosa :)

Por julioealonso

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Dic 2011 02:34 pm
Gracias Julio!! Me has dado la solución! Ya se expanden desde el centro. mil gracias, te estoy muy agradecida!!

Eres un auténtico CRACK!!! :cool:

Por mariamm

10 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 15 Dic 2011 03:47 pm
Nah, de crack no tengo ni un hueso, pero me da gusto saber que te fue útil la ayuda. Saludos.

Por julioealonso

6 de clabLevel



 

safari

 

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