Comunidad de diseño web y desarrollo en internet online

ir leyendo fograma x fotograma (duda)

Citar            
MensajeEscrito el 04 May 2009 10:53 pm
Hola,

La duda basica es:

Como le digo a flash, que lea el contenido de un keyframe(no.1) y que cuando termine de leerlo en automático salte al siguientekeyframe (no.2) y asi sucesivamente. Todo lo anterior sin botones. Hay alguna manera de hacerlo? Digamos que ya se que tengo que poner un stop en cada keyframe, pero cómo le hago para que salte al siguiente.

Supongamos que tengo mi escena conformada por 3 keyframes.
En mi escena, en el fotograma 2 tengo un movie clip (hasta aqui va bien mi reproducción)
dentro del movie clip tengo 5 keyframes
En cada uno de estos 5 keyframes tengo otros 5 movie clips (1 por keyframe). Y quiero que flash ejecute la accion asignada para cada fotograma, pero quiero que cuando termine de ejecutar la accion se pase al siguiente fograma.

Estoy tratando de hacer unos movimientos de texto con los MXTRANSITIONS, pero estos movimientos los quiero desfasados. Es decir, que cuando termine de reproducirse el movimiento de un mc, realice el movieminto de otro mc.

tengo una capa asignada solo a las acciones.

Estoy usando AS2
Gracias.

Por bekkhaaa

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 May 2009 11:13 am
Básicamente, cuando quieras que la línea de tiempo que contiene a tu MC avance, haces

_parent.play()

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 May 2009 01:53 pm
gracias Jorge!!!, pero eso no es lo que busco, eso ya lo tengp en mis acciones.

Yo lo que quiero es hacer una reproduccion de una animacion de textos, pero en escalerita. Hasta el momento sè que la solución podría ser con la duración de mis fotogramas en la linea de tiempo. Pero hay una manera de hacerlo con AS?

Por bekkhaaa

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 May 2009 02:01 pm
Lo pones en el último fotograma de la animacion, eso hace avanzar la línea de tiempo que lo contiene. Luego (si entiendes el principio) es cuestión de armar la estructura. ¿Por código? Tienes que usar la clase Tween (o librerías de Tween), encontraras cientos de posts y tips (incluso algún tuto)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 May 2009 02:00 am
Muchas Gracias, me diste una pista importate con la clase tween.

ya lo logre, ya pude hacer una animacion en escalerita en un solo frame y con puro código (todo, dentro de un movie clip).

Ahora el problema es que el cabezal de flash lea las instrucciones de mi codigo, y hasta que termine, entonces se salga del movie clip y vaya al siguiente frame de la escena 1. Ya usé el "_parent.play()" que me dijiste. Pero para que funcione correctamente tengo que prolongar la duracion de mi movie clip tantos frames como calculo que se tarda la animacion (hice el conteo del tiempo de mi codigo, digamos que son 100 frames). Y en el frame 101 puse la accion "_parent.play()". Solo así funciona correctamente.

que tendria que hacer para no tener que prolongar mi movie clip a 100 frames y reducirlo a 1?. Es decir, que lea el contenido (dentro del movie clip) y hasta que termine se salga de el y vaya al siguiente frame de la escena1.

Gracias!!

Por bekkhaaa

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 May 2009 10:06 am
Si usas tweening en la línea de tiempo, tendrás que ir al último fotograma de la animación (no calcules, ve a la línea de tiempo donde está la animación y allí al último fotograma) Si usas Tween por programación, busca el callback onTweenFinished

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 May 2009 01:07 am
gracias, aun no lo pruebo, pero ya comenzaré a hacerlo. MiL GRACIAS!!!

Por bekkhaaa

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2009 12:21 am
Jorge. ya lo pude hacer, si funcionó. AHora tengo otra duda:

Ya logré hacer la misma animación en as3 dentro de un movie clip

Ahora los problemas son:

1.Este codigo puse en mi movie clip para que saliera de sí mismo y se fuera al siguiente frame de la escena 1
CODIGO EN AS2:

mov_h.onMotionFinished = function(){
_parent.gotoAndPlay(3);
}

segun lo que he estado leyendo, su equivalente en AS3 seria algo así:

mov_h.addEventListener(TweenEvent.MOTION_FINISH, finishHandler8);
function finishHandler8(event:TweenEvent):void{
_parent.gotoAndPlay(2);
}

Esta bien?




2.En mi pelicula tengo 3 frames y en cada frame un movie clip.

Cómo pongo un stop en los frame de la escena1 y que lea la animación de mi movie clip? Segun leo, han cambiado las cosas en as3.

En as2 solo pongo un stop(); en el frame 1 (capa acciones) y mi movie clip animado con codigo en el frame 1 (capa contenido). Y asi sucesivamente en cada frame. Todo funciona bien.

EN AS3:
Ya probé poner en el frame 1 de la escena 1 un
letras.stop();
y en el frame 2 escena 1 un
bola.stop();
Pero no se detiene, no se para mi pelicula al leer el frame 1

Cómo hago lo mismo en as3?

Gracias.

Por bekkhaaa

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2009 01:19 am
paece que ya pude parar mi pelicula siguiendo usando el el stop(); de as2.

Pero sigo sin poder (o entender) como aplicar el salto al siguiente frame de la linea de tiempo principal.

Por bekkhaaa

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2009 11:17 am
Sería

parent.gotoAndPlay(2);

En general, todo lo relacionado con la clase MovieClip que iba con guión bajo ya no lo tiene

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 May 2009 01:22 pm
ohh, no me funciona, hace un parpadeo mi pelicula, No tengo que importar un "algo" como las transiciones? Osea, algo así?

import fl.transitions.*;
import fl.transitions.easing.*;
import flash.display.MovieClip;
_______________________________________________
1.Si le quito el lo del parent y lo pruebo con un trace (funciona bien el frame 1, no hace el parpadeo y si salta):
2. Si le hablito el parent, si parpadea y no salta, me marca este ERROR: Symbol `txt_intro`, Later 2 Frame 1, Line 70:1061:
Call to possibly undefined method gotoAndPlay through a reference with static type flash.display:DispalyObjectContainer.
parent.gotoAndPlay();


el punto 1 y 2 con este código;
mov_h.addEventListener(TweenEvent.MOTION_FINISH, finishHandler8);
function finishHandler8(event:TweenEvent):void{
//trace("hola");
parent.gotoAndPlay(2);
}

________________________________________________________________
Te pongo el codigo del movie clip animado:

import fl.transitions.*;
import fl.transitions.easing.*;
//
var mov_a:Tween = new Tween(gru, "y", Bounce.easeOut, -45, 58, 5, false);
var mov_b:Tween = new Tween(exp, "alpha", Strong.easeInOut, 0, 100, 6, false);
var mov_c:Tween = new Tween(mas, "alpha", Strong.easeInOut, 0, 100, 6, false);
var mov_d:Tween = new Tween(elg, "x", Regular.easeOut, 1024, 271.2, 5, false);
var mov_e:Tween = new Tween(soli, "alpha", Strong.easeInOut, 0, 100, 30, false);
var mov_f:Tween = new Tween(nue, "x", Regular.easeOut, -189, 421.5, 5, false);
var mov_g:Tween = new Tween(hac, "alpha", Strong.easeInOut, 0, 100, 20, false);
var mov_h:Tween = new Tween(somos, "y", Regular.easeOut, 771, 567.4, 5, false);
//
mov_b.stop();
mov_c.stop();
mov_d.stop();
mov_e.stop();
mov_f.stop();
mov_g.stop();
mov_h.stop();
//
mov_a.addEventListener(TweenEvent.MOTION_FINISH, termino);
function termino(event:TweenEvent):void{
mov_b.start();
}
mov_b.addEventListener(TweenEvent.MOTION_FINISH, finishHandler2);
function finishHandler2(event:TweenEvent):void{
mov_c.start();
}
mov_c.addEventListener(TweenEvent.MOTION_FINISH, finishHandler3);
function finishHandler3(event:TweenEvent):void{
mov_d.start();
}
mov_d.addEventListener(TweenEvent.MOTION_FINISH, finishHandler4);
function finishHandler4(event:TweenEvent):void{
mov_e.start();
}
mov_e.addEventListener(TweenEvent.MOTION_FINISH, finishHandler5);
function finishHandler5(event:TweenEvent):void{
mov_f.start();
}
mov_f.addEventListener(TweenEvent.MOTION_FINISH, finishHandler6);
function finishHandler6(event:TweenEvent):void{
mov_g.start();
}
mov_g.addEventListener(TweenEvent.MOTION_FINISH, finishHandler7);
function finishHandler7(event:TweenEvent):void{
mov_h.start();
}
/*mov_h.addEventListener(TweenEvent.MOTION_FINISH, finishHandler8);
function finishHandler8(event:TweenEvent):void{
//trace("hola");
_parent.gotoAndPlay(2);
}*/

mov_h.addEventListener(TweenEvent.MOTION_FINISH, finishHandler8);
function finishHandler8(event:TweenEvent):void{
//trace("hola");
parent.gotoAndPlay(2);


Que estoy haciendo mal? o que me falta? ya lo abri en cs3 y cs4 y sigue igual. :shock: :oops:
}

Por bekkhaaa

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2009 01:32 pm
Pon

MovieClip(parent).gotoAndPlay(2)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 May 2009 02:37 pm
yupie yupiee!!!!
muchas gracias Jorge ^^ :D :cool:

Jorge, cual crees que haya sido el error? Se modifico el codigo por el"" import flash.display.MovieClip;""?
O no jalaba el ""parent.gotoAndPlay();"" por la forma en la que armé el código?

Muy bien, ya se pudo.
Gracias y espero que los aportes de Jorge ayuden a quienes lean el este post. A mi me ayudaron mucho pero mucho.

Por bekkhaaa

12 de clabLevel



 

firefox

 

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