Ayuda. Me vuelvo loco: gotoAndPlay
6 seguidores
A ver, esto debería ser una chorrada, pero no sé qué pasa.
Tengo un movieclip con una animación de 30 fotogramas. Está dividida en dos partes. Tiene un stop en el fotograma 1 y en el 15. Después de ambos hay un fotograma clave sin código para "eliminar" el stop.
Quiero que cuando se cargue aparezca parado (para eso el stop del 1). Pero quiero poder ponerlo en marcha cuando yo quiera. Sería con:
<code>miclip.gotoAndPlay(1);</code>
no?
Pues no funciona. O lo que es mejor, funciona solo en algunas instancias del clip. En el resto va al fotograma que le digo pero se queda parado (como si fuera un gotoAndStop).
¿Alguna idea? Estoy desesperado.
Odrakir.
Usuario desconocido
has probado colocando el path completo???? utilizando _root???
txuma Plus
Odrakir
Quiero que cuando se cargue aparezca parado (para eso el stop del 1). Pero quiero poder ponerlo en marcha cuando yo quiera.
A través de un botón?
El código asociado a ese botón sería:
on (release) {
miclip.play();
}
Eso lo que haría es ejecutar la linea del tiempo del clip desde el fotograma en que se encuentra en el momento en actives el evento del ratón.
odrakir
fedemental
has probado colocando el path completo???? utilizando _root???
Si, en realidad todo esto sucede dentro de otro movieclip que está en root. El código es:
<code>this.textogrande.mascara.gotoAndPlay(1);</code>
La ruta es correcta, está comprobada.
txuma
A través de un botón?
No, la animación se tiene que disparar ella sola cuando se haya cargado una imagen, por eso lo tengo que llamar en un determinado momento.
Odrakir.
jmrcs
pregunta chorra:
El frame 1 tiene un stop¿?
txuma Plus
otra pregunta chorra:
en el post inicial ponías que tenias un stop en el 1 y otro en el 15... cuando cargue la imagen entiendo que tiene que arrancar la animación. Puedes hacerlo así:
this.textogrande.mascara.gotoAndPlay(2);
Llegará al 15 y se parará... qué tiene que pasar para que empiece a partir del 15?
odrakir
Contestación chorra:
Si
:)
Pero no es ese el problema. Aunque tenga un stop(); si le dices gotoAndPlay(1) debería "go and play"... De todas formas ya he probado a hacer gotoAndPlay(2).
Y el problema es que esto solo funciona a ratos... Es como si hubiera que darle tiempo a que espabilara o algo. Porque probé, por curiosidad a hacer una chapuza:
<code>this.textogrande.onEnterFrame = function () {
this.mascara.gotoAndPlay(1);
delete this.onEnterFrame;
}</code>
Y funciona, pero solo la primera vez que pasa por ahí, la segunda ya no :(
Hoy es uno de estos días en los que odio el flash
Odrakir.
odrakir
txuma
Llegará al 15 y se parará... qué tiene que pasar para que empiece a partir del 15?
La animación es para una máscara. Del 1 al 15 aparece y del 15 al 30 desaparece.
Cuando he cargado la imagen debe aparecer y cuando cambio de imagen o la cierro debe desaparecer.
Odrakir.
jmrcs
no, a ver.
el gotoandplay es go al frame y play (ejecuta lo que haya en el frame)
Entonces, si tienes un stop, claro que se para. (o eso deberia de ser lo que tendria que hacer)
Solucion?
o la de Txuma: gotoandplay(2);
o una funcion con una variable:
if (variable == 1){
stop();
} else if (variable == 2){
play();
}
O usando un switch() como mas guste.
odrakir
Entiendo lo que dices _jmrcs y a mi me parecería lógico que fuera así. Pero hasta ahora en flash nunca me ha funcionado así. Si yo tengo un stop en el frame 1 y pongo gotoAndPlay(1) ejecuta la peli saltándose el stop... no sé si es un bug del MX.
El caso es que en 2004 no lo puedo replicar.
De todas formas mi problema no se soluciona así, porque ya te digo que dá igual que ponga gotoAndPlay(1), gotoAndPlay(2) o 18. Se queda parado en ese fotograma en concreto.
Odrakir.
odrakir
Acabo de "solucionarlo"
He movido el stop(); del frame 1 al frame 2 y he añadido otro fotograma clave en 3.
Ahora hago gotoAndPlay(3); y funciona.
Es como si lo que estuviera en el fotograma 1 afectara a toda la película.
?¿?¿¿?¿ :shock:
Odrakir.
jmrcs
claro
eso te iba a decir yo ahora
para aislar el stop al frame 1, tienes que hacer un fotograma clave solo de ese frame y que otro empiece en el 2, sino afecta hasta que se acabe.
Son tipicas pifiadas tontas que te hacen perder 1h y cuando lo descubres es pa matarse.
;)
Me alegro q este solucionao.
odrakir
Noooooooooo :)
Tenemos un problema de comunicación :)
Lo de aislar el fotograma 1 ya lo había hecho (lee más arriba, el primer post). Así estaba desde el principio.
Pero al parecer en este caso no basta con aislarlo. Simplemente el stop NO PUEDE estar en el fotograma 1 porque si no afecta a toda la película.
Yo creo que tiene que ser un BUG.
Odrakir.
jmrcs
problemas de comunicacion?? parecemos pareja xDDDD
Bueno, no lo acabo de pillar, sera un error...
;)
Usuario desconocido
Si tu movieclip está en el fotograma 1, con un stop, y haces gotoAndPlay(1), el goto no te lo va a hacer, ni te va a ejecutar el código del frame 1, pero sí que te va a hacer el play. Sin embago si estás en el fotograma 15, y haces un gotoAndPlay(1), irá al frame 1, ejecutará su código (que es un stop) y no te hará play puesto que lo has cancelado con el stop.
odrakir
_jmrcs
problemas de comunicacion?? parecemos pareja xDDDD
Puedes estar tranquilo, mis intenciones son puras... :)
Bien, vamos a ver si alguien puede probar esto en su ordenador, porque está claro que nos encontramos ante un BUG del flash o de mi ordenata (que por otro lado lleva haciendo cosas raras desde hace unos días).
Caso 1: El modo normal y evidente de hacerlo:
http://www.2bitmedia.com/ricardo/imagenes_foros/caso1.jpg
Esto está dentro de un mc que está en raiz. El código en raiz es:
<code>_root.clipchorra.gotoAndPlay(2);</code>
Resultado: Va al frame 2 y ahí se queda.
Caso 2: Paja mental para sacarlo a delante:
http://www.2bitmedia.com/ricardo/imagenes_foros/caso2.jpg
En este caso el código en raiz es:
<code>_root.clipchorra.gotoAndPlay(3);</code>
Resultado: Va al frame 3 y ejecuta el resto de la animación desde ahí.
Y como muestra un archivo fla que agradecería que alguien más se descarrgara y probara en su equipo, para ver si soy yo: flash del caso 1
A lo mejor hay que contactar con Macromedia para un tirón de orejas.
Odrakir.
Usuario desconocido
Me ha quedado la respuesta un poco liosa xD
Me explico, si tu movieclip está en el frame X, y le dices gotoAndPlay(X), no te va a ejecutar el código de ese frame y sí te va a hacer el play.
Si tu movieclip está en el frame X, y le dices gotoAndPlay(Y), y ese frame Y tiene un stop, ejecutará el código del frame Y y no hará play puesto que tienes una instrucción de stop en el frame Y.
gandalias
Una sugerencia
Utiliza una capa solamente para meter código y que sea la superior de todas
Un saludo
odrakir
gandalias
Utiliza una capa solamente para meter código y que sea la superior de todas
Si, eso hago normalmente. Esas capturas son de el ejemplo rápido que he hecho ahora. De todas formas no creo que tenga nada que ver con el error del que hablamos.
msanchez. Te había entendido perfectamente. Gracias, es algo a tener en cuenta. Pero sigue sin solucionar este problema, ¿no?.
Odrakir.
Usuario desconocido
Bueno, es que no sé exactamente lo que quieres hacer, en lugar de trabajar con gotoAndPlay por qué no trabajas con play() ?
gandalias
Bueno...una cosa que he visto... si pones el gotoAndPlay(2) en la peli principal en el fotograma 2 si que lo hace bien.. si que es curioso si
es como si primero ejecutará la acción y luego caragara el clip aunque no es exactamente eso... no se...
Usuario desconocido
Prueba a poner un trace("2") en el frame 1 del movieclip, y un trace("1") en la línea de tiempo principal, cuando llamas al gotoAndPlay()
Verás en la ventana de salida
1
2
"Potanto" se ejecuta primero el de la línea de tiempo principal, y luego el del movieclip. Como el del movieclip es un stop se detiene y tu gotoAndPlay no funciona.
odrakir
Conclusión:
En el fotograma 1 de la linea de tiempo principal es como si todavía no se pudiera acceder a los fotogramas posteriores al 1 de los movieclips que están en ella.... o algo ¿?¿ :shock:
es un BUG fijo.
Pues nada, a hacer chapucillas para saltarselo.
Odrakir.
xrv
ummmmmmmm.... eso te pasa solo en el proyector de flash o tb cuando exportas la peli a la red?
me encontré con ese problema hace un tiempo atrás y opté por volver a empezar lo que tenia y ... raramente funcionó... no se, cosas raras pensé :P
tb puedes meter las animaciones en un movieclip y listos ;)
ala, saludines
Usuario desconocido
Si lo que pretendes hacer es un gotoAndPlay sólo una vez y nada más cargarse el clip, lo puedes hacer en el evento load
<code>
onClipEvent(load) {
gotoAndPlay(1); // o play()
}
</code>
Es que no sé si estamos dando palos de ciego al no saber bien claro el propósito, si la primera vez se tiene que saltar el stop o qué
Salu2
odrakir
Ya probé a hacerlo en un archivo nuevo, con el ejemplo que he subido, y ocurre lo mismo.
La animación tiene que ejecutarse una vez esté cargado el clip. Pero también en determinador momentos cuando se vuelva sobre ese clip, así que no valdría lo del onClipEvet(load)
Si de verdad quereis ver si es o no un bug bajaros el ejemplo que puse antes e intentar que funcione.
Odrakir.
Usuario desconocido
Me refería a usar el load para la primera vez, luego harías las llamadas con gotoAndPlay o play. No sé, es que no le veo complicación...
Exactamente que comportamiento tiene que tener la película??
odrakir
A qué no le ves complicación?
Te has bajado el ejemplo que postee?
Porque lo que en principio debería ser FÁCIL, no funciona. No es que no sepa hacerlo, al menos no creo, es que me temo que Flash tiene un BUG.
Si lees el post en el que posteo capturas de pantalla tendrás claro que es lo que me pasa. A lo mejor es que estoy tonto, pero creo que simplemente no funciona, o funciona mal.
Odrakir.
Usuario desconocido
Ahhhhhhhhmigo... ahora lo veo :D
Tienes razón, al hacer el gotoAndPlay(2) se va al fotograma 2 y se para, aunque no lleve un stop... curioso...
He visto que esto ocurre si está la acción clipchorra.gotoAndPlay(2) en el primer frame, junto con el clipchorra. Curiosamente si hacemos la película con 2 frames y 2 capas, la de abajo con el clipchorra en los 2 frames, y la de arriba con la acción gotoAndPlay(2) en el segundo frame, sí que funciona.
Parece ser que flash se hace un lío al estar el stop del primer frame del clip junto con el gotoAndPlay(2) del timeline principal. Prueba a solucionarlo de esta forma, o a cambiar el enfoque quitando el stop del clip y deteniendolo en algún evento, o... qué sé yo, siempre hay muchas formas distintas de hacer lo mismo ;)