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

No respeta stop();

Estas en el tema de No respeta stop(); en el foro de Flash y Actionscript en Foros del Web. Hola, estoy haciendo una web, en la cual cargo swf externos, los cuales corresponden a las secciones de la pagina. el escenario se arma hasta ...
  #1 (permalink)  
Antiguo 03/10/2006, 21:45
Avatar de chascon  
Fecha de Ingreso: diciembre-2004
Mensajes: 231
Antigüedad: 19 años, 4 meses
Puntos: 0
No respeta stop();

Hola, estoy haciendo una web, en la cual cargo swf externos, los cuales corresponden a las secciones de la pagina.
el escenario se arma hasta el fotograma 80, aqui tengo un stop(); y hasta aqui vamos bien.
en el fotograma 5 le doy un valor a una variable:
seccion = "home.swf";
el fotograma 80 lo tengo marcado con esta etiqueta "main" y este codigo:

stop();
loadMovie(seccion,"mc_vacio");

en el fotograma 85 tengo una etiqueta llamada "alpha", que hace correr un efecto desde alpha 0 hasta 100 para q la pelicula q esta en el escenario se desaparezca y no salga de manera repentina. Esto dura hasta el 95, donde tengo el siguiente codigo:

gotoAndStop("main");

el menu con sus botones estan todos a la altura del fotograma 80, cada boton tiene este codigo:
ej:
on (release){
seccion = "estilo.swf";
gotoAndPlay("alpha");
}

obviamente,cada boton me envia un valor de seccion distinto.

esto funciona la primera vez, pero despues de presionar mas veces un boton, los stop(); no son respetados, ni los de los swf externos ni los de la pelicula principal.
Se queda dando vueltas entre "main" y "alpha", pero no entiendo por que, no logro ver el problema, quiza ud puedan visualisarlo o ya han visto algo asi.

desde ya muchas gracias a cualquier ayuda q puedan darme.
  #2 (permalink)  
Antiguo 04/10/2006, 02:17
Avatar de kappra  
Fecha de Ingreso: diciembre-2004
Mensajes: 125
Antigüedad: 19 años, 4 meses
Puntos: 0
así, a bote pronto, se me ocurre que el problema puede estar en los .swf que cargas, porque por lo que expones, el código de la principal parece correcto.
Por cierto, cuando yo he tenido que usar alguna transición para cargar distintos swf, suelo colocar esa transición en los propios swf externos. Prueba a hacerlo así, y de esa forma no tendrás que mover la linea de tiempo del principal.
__________________
oO <--- H. Kappra ---> oO
  #3 (permalink)  
Antiguo 04/10/2006, 16:20
Avatar de chascon  
Fecha de Ingreso: diciembre-2004
Mensajes: 231
Antigüedad: 19 años, 4 meses
Puntos: 0
para salir de la duda. elimine el efecto alpha, ahora la pelicula llega hasta el frame 80, un frame antes (79) lo etiquete "xxx" para hacer la prueba, y con los botones que estan el el 80 envio la variable al xxx, para q cuando llegue al 80 se cargue el swf que corresponda.
la pelicula funciona. pero sola 1 vez, me explico, si presiono un boton, esto funciona, pero si apreto otro boton, ahi queda la cagada!y no entiendo por que.
hay alguna manera de "limpiar" el MC_vacio antes de cargarle otro swf??, sera eso el problema??
F1, F1...
no se me ocurre cual sera el error, si al menos supiera, sabria que corregir, si alguien quiere ver el problema, me avisa y le mando una dir con la web de prueba q tengo, ok.
thx.
  #4 (permalink)  
Antiguo 04/10/2006, 16:29
Avatar de kappra  
Fecha de Ingreso: diciembre-2004
Mensajes: 125
Antigüedad: 19 años, 4 meses
Puntos: 0
para limpiar el mc antes de volver a cargarlo usa:

unloadMovie(MC_vacio);
__________________
oO <--- H. Kappra ---> oO
  #5 (permalink)  
Antiguo 04/10/2006, 17:29
Avatar de chascon  
Fecha de Ingreso: diciembre-2004
Mensajes: 231
Antigüedad: 19 años, 4 meses
Puntos: 0
no funciono!

modifique la linea de tiempo como muestro en la foto

ese codigo aparece = en las etiquetas "correo", "piedras" y en "main".

la variable llega, lo verifico con el trace();
pero no me respeta el stop();
osea, la primera vez q se carga 1 seccion, si me respeta el stop();
me explico, cuando llego por primera vez a "main", y luego preciono por ejemplo el boton q me lleva a piedras, la variable llega ok, me carga el swf, el swf tiene un stop(); al final de la pelicula y todo ok.
al pulsar el boton q me lleva a correo, por ejemplo, ahi queda la cagada, no respeta los stop de la pelicula principal, se da vueltas una y otra vez.

ojala alguien sepa q pasa.
  #6 (permalink)  
Antiguo 04/10/2006, 17:34
Avatar de kappra  
Fecha de Ingreso: diciembre-2004
Mensajes: 125
Antigüedad: 19 años, 4 meses
Puntos: 0
tienes un error en el código. En la línea donde cargas el .swf

loadMovie(seccion,"mc_vacio")

quítale las comillas al nombre de la movie donde cargas
__________________
oO <--- H. Kappra ---> oO
  #7 (permalink)  
Antiguo 04/10/2006, 18:07
Avatar de chascon  
Fecha de Ingreso: diciembre-2004
Mensajes: 231
Antigüedad: 19 años, 4 meses
Puntos: 0
no paso nada men.
sigue = el problema.
  #8 (permalink)  
Antiguo 05/10/2006, 06:23
Avatar de kappra  
Fecha de Ingreso: diciembre-2004
Mensajes: 125
Antigüedad: 19 años, 4 meses
Puntos: 0
Vamos a ver, voy a intentar explicarte como lo hago yo. Voy a dividirlo en dos partes, el .swf externo y la movie principal.

1. PÁGINA PRINCIPAL

- En la página principal, coloca una movie vacía (mc_vacio) y asegúrate que está disponible en toda la linea de tiempo (insertFrame si es necesario). Te recomiendo que esta movie la coloques en un layer para ella sola

- Crea en el primer frame una variable:

Código:
 var seccion;
No olvides declararla para que esté accesible desde cualquier .swf externo

- El código para cada botón del menú sería el siguiente:

Código:
 btnElquesea.onRelease=function(){
   seccion="loquesea.swf";
   mc_vacio.play();
 }
2.- .SWF EXTERNOS

- Si quieres que haya una transición para cada movie que carges, puedes ponerla directamente en el .swf externo.

- Coloca el contenido del .swf en el primer frame (si tienes varios layer y objetos, agrúpalos en una movie, o en un graphic)

- Arrastra esa movie o ese graphic 15 o 20 frames (según te interese que sea de larga la transición) y aplícale un efecto alpha de 0 a 100. En el último frame (alpha=100) coloca un stop();

- Vuelve a arrastrar el contenido otros 15 o 20 frames y esta vez, haz la transición a la inversa (alpha 100 a 0). Con esto vas a conseguir que antes de que se cargue una nueva movie, te desaparezca la actual de manera más agradable.

- En el último frame (alpha=0) pon el siguiente código:
Código:
loadMovie(seccion,mc_vacio);
- Mantén esa estructura para todos los .swf externos que tengas. Cuando pulses un botón te desaparecerá gradualmente el contenido actual, se cargará el nuevo contenido y aparecerá también gradualmente.

Esta es una de tantas formas de hacerlo, espero que me haya explicado. Si tienes alguna duda, no tienes más que preguntar
__________________
oO <--- H. Kappra ---> oO
  #9 (permalink)  
Antiguo 05/10/2006, 13:06
Avatar de chascon  
Fecha de Ingreso: diciembre-2004
Mensajes: 231
Antigüedad: 19 años, 4 meses
Puntos: 0
muchas gracias Kappra, voy a hacerlo como me dices, haber si me resulta.
ahi te cuento como me fue.
  #10 (permalink)  
Antiguo 05/10/2006, 16:39
Avatar de chascon  
Fecha de Ingreso: diciembre-2004
Mensajes: 231
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola, he tratado de ocupar lo q me dice kappra, pero no me funciona, seguramente estoy haciendo algo mal, voy a seguir intentandolo.

me he fijado de una cosa, si presiono un boton, ese me carga la pelicula sin problema, pero debo dejar que la pelicula termine completamente antes de presionar otro boton y cargar otra, por q si lo hago antes, se vuelve loco el flash. si las peliculas terminan completamente, no pasa nada.
que raro no?

laqui un link con unos fla q son mas o menos tengo:

bajar archivo

si alguien tiene el tiempo de verlos para ver lo q pasa y como podria solucionarlo, se lo agradeceria. (baja rapido, son 44k.)
  #11 (permalink)  
Antiguo 05/10/2006, 17:21
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola chascon:
Vamos a ver si te entendí.
Si tú quieres llegar al frame 10 del index.swf y de allí cargar: contacto, seccionx y home porque en los botones simplemente coloca éste código:
on(release){
mc_vacio.loadMovie("contacto.swf");
}
En los demás botones solamente cambia el nombre de la película.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #12 (permalink)  
Antiguo 05/10/2006, 18:04
Avatar de chascon  
Fecha de Ingreso: diciembre-2004
Mensajes: 231
Antigüedad: 19 años, 4 meses
Puntos: 0
Gracias Bandit por la respuesta, pero el problema es q si presiono un boton antes de q termine la pelicula de la seccion q se este reproduciendo en ese momento, el flash se vuelve loco, no respeta stop(); ni nada, eso es lo q no se como solucionar.

plz F1
  #13 (permalink)  
Antiguo 06/10/2006, 16:33
Avatar de chascon  
Fecha de Ingreso: diciembre-2004
Mensajes: 231
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola denuevo, creo q he dado con la madre del cordero.
Les cuento, por si alguien tiene el mismo problema, quiza es por lo mismo que yo.
despues de mucho pelear con flash, y como dijo Kappra, el problema lo tenia en un swf que se carga externamente, y el problema para ser mas exacto es un codigo que use para realizar una pausa en la pelicula, para hacer un efecto mientras estaba detenida la pelicula. Esta pausa la tenia en 5 fotogramas de la pelicula, despues de hacer muchas cosas, se me ocurrio comentar todas las pausas para que no se ejecutaran, y adivinen que paso, el flash funciona correctamente.

si alguien quiere saber que codigo use, se los dejo aqui:

stop();
segundos = 2;
espera = function () {
play();
clearInterval(a);
};
a = setInterval(espera, segundos*1000);

La pregunta ahora es por que provoca este error el codigo de la pausa.

Bueno, les agradezco a todos por su tiempo y paciencia, la solucion, sacar ese codigo.

bye!.
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 06:55.