Comunidad de diseño web y desarrollo en internet online

EmptyMc's hacen loop y no puedo pararlos

Citar            
MensajeEscrito el 03 Sep 2008 11:14 pm
Hola a todos.
Estoy trabajando sobre un documento que únicamente tiene un fotograma de acciones y en el cual llamo swf's para ponerlos en mc's vacios a diferentes profundidades. El problema es que los swf's se repiten cuando terminan. he puesto un stop(); al final de cada uno de los mc's que generan esos swf's y eso no los detiene. En dónde puede estar el error? Si ponog un stop(); en el primer (y único) fotograma de la línea principal del proyecto lo que hace es que deja que los swf's corran hasta el final y después se repitan. En cambio si quito el stop(); en ese primer fotograma al exportarlo el swf flashea de manera intermitente. Mi código en el proyecto y que se encuentra en el primer fotograma es el siguiente:

Código ActionScript :

this.createEmptyMovieClip("holder_mc",1);
this.createEmptyMovieClip("holder_mc_dos",2);

holder_mc.swapDepths(100);
holder_mc_dos.swapDepths(101);

holder_mc.loadMovie("crust.swf");


holder_mc_dos.loadMovie("intro_final.swf");

holder_mc_dos._y=220;
holder_mc_dos._x=206;


this.createEmptyMovieClip("holder_mc_tres",1)


Gracias por su ayuda señores! :)

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Sep 2008 01:04 am
Gracias por la atención, me salí a fumarme un cigarro e intnenté mover el código un poco y ya se ha solucionado el problema.

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Sep 2008 01:10 am
Ahora surgio otro problema. Quiero cargar un .swf de un boton el cual quiero que se ejecute cuando se hayan terminado de cargar los anteriores mc's. Alguien tiene idea de como se escribiria eso? Estoy trabajando con handlers y EmptyMovieClips, lo único que no se es como se escribiría eso? Gracias por su ayuda.

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Sep 2008 09:22 am
Donde mismo pusiste el stop de las películas que estás leyendo, debes llamar a una función que se encuentre en el SWF principal:

Código ActionScript :

//---En la película principal:
var sum:Number = 0;
var total:Number = 4; //---Suponiendo que cargas 4 películas

function checkFinish():Void{

    sum++;
    if(sum == total){

        //---Mandas a cargar el SWF del botón

    }

}

//---Al final de los SWF que lees, donde mismo pusiste el stop
_root.checkFinish();


De esta manera irás contando las películas que se van leyendo y culminando de reproducir y cuando hayan terminado todas entonces la función cargará el SWF que deseas.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 04 Sep 2008 04:05 pm
Muchas gracias por lsa respuesta elchini, aqui estoy probandolo.

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Sep 2008 05:27 pm
HOla, que tal? Sigo intentando hacer funcionar este mismo tema. Tengo dos swf's que quiero cargar y despues detener. Se llaman "crust.swf" e "intro_final.swf". Despues de cargarse he puesto una serie de botones que hacen un fade in. El primero de los botones (swf) se llama "btn_academia.swf¨. Estoy tratando de cargar esos botones con el código:

Código ActionScript :


this.createEmptyMovieClip("holder_mc",1);
this.createEmptyMovieClip("holder_mc_dos",2);
this.createEmptyMovieClip("holder_mc_tres",3);



holder_mc_dos.loadMovie("intro_final.swf");
holder_mc_dos._y=220;
holder_mc_dos._x=206;

holder_mc.loadMovie("crust.swf");


holder_mc.swapDepths(100);
holder_mc_dos.swapDepths(101);
holder_mc_tres.swapDepths(102);


var sum:Number = 0; 
var total:Number = 2; //---Suponiendo que cargas 4 películas 
 
function checkFinish():Void{ 
 
    sum++; 
    if(sum == total){ 
   
holder_mc_tres.loadMovie("btn_academia.swf");
holder_mc_tres._y=485;
holder_mc_tres._x=166;
 
    } 
 
} 



Al final de cada uno de los swf's he puesto en el último fotograma el código:

Código ActionScript :

stop();
_root.checkFinish(); 


Al poner lo anterior y exportarlo, el swf de mi proyecto principal solo carga los swf's "crust.swf" e "intro_final.swf". No me regresa ningún error ni carga el swf "btn_academia.swf". Alguna sugerencia de alguno de los que le saben. gracias y aqui seguimos

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Sep 2008 07:48 pm
Postea el código con formato, así es muy difícil de leer:

Código :

[as]
//Tu codigo aqui
[/as]


De lo que planteas, haz lo siguiente, sitúa traces dentro de la función para chequear que se está ejecutando:

Código ActionScript :

function checkFinish():Void{
    sum++;
    f(sum == total){

        trace("se cargaron las dos peliculas");
        holder_mc_tres.loadMovie("btn_academia.swf");
        holder_mc_tres._y=485;
        holder_mc_tres._x=166;
    }
    
    trace(sum);

} 


postea lo que te devuelven los trace (si te los devuelven).

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 15 Sep 2008 06:23 pm
elchini, gracias por tu respesta. Salí de la ciudad y no tenía internet. He colocado el trace y después de cargar dos de mis películas me devuelve una ventana con el número 1. No se lo que ese número 1 quiera decir. Según viendo el código que me has sugerido deberia de regresarme el mensaje "se cargaron las dos peliculas", cierto? Mi código se ve así ahora:

Código ActionScript :


this.createEmptyMovieClip("holder_mc",1);
this.createEmptyMovieClip("holder_mc_dos",2);
this.createEmptyMovieClip("holder_mc_tres",3);



holder_mc_dos.loadMovie("intro_final.swf");
holder_mc_dos._y=220;
holder_mc_dos._x=206;

holder_mc.loadMovie("crust.swf");


holder_mc.swapDepths(100);
holder_mc_dos.swapDepths(101);
holder_mc_tres.swapDepths(102);


var sum:Number = 0; 
var total:Number = 2;  
 
function checkFinish():Void{ 
 
    sum++; 
    if(sum == total){ 

trace("se cargaron las dos peliculas");
holder_mc_tres.loadMovie("btn_academia.swf");
holder_mc_tres._y=485;
holder_mc_tres._x=166;
 
    } 
 trace(sum);    
 
} 



gracias por la ayuda, estoy a punto de lograr lo que necesito.

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Sep 2008 09:22 am
Si te devuelve el número 1 sólo una vez, eso demuestra que de las películas que lees, solamente hay una que llama correctamente a la función, la otra o la llama de manera incorrecta o no la llama, debes revisar que tengas bien puesto la instrucción en las dos películas:

Código ActionScript :

_root.checkFinish();

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 17 Sep 2008 10:07 am
He revisado el código de cada uno de mis swf's y al final de cada fotograma tengo:

Código ActionScript :


stop();
_root.checkFinish();




En mi pelicula principal el código se ve así:


Código ActionScript :


this.createEmptyMovieClip("holder_mc",1);
this.createEmptyMovieClip("holder_mc_dos",2);
this.createEmptyMovieClip("holder_mc_tres",3);


holder_mc.loadMovie("crust.swf");
holder_mc_uno._x=0
holder_mc_uno._y=0
   
holder_mc_dos.loadMovie("intro_final.swf");
holder_mc_dos._y=220;
holder_mc_dos._x=206;

holder_mc_tres.loadMovie("btn_academia.swf");
holder_mc_tres._y=485;
holder_mc_tres._x=166;


   {
   
holder_mc.swapDepths(100);
holder_mc_dos.swapDepths(101);
holder_mc_tres.swapDepths(102);

}

var sum:Number = 0; 
var total:Number = 3;  
 
function checkFinish():Void{ 
 
    sum++; 
    if(sum == total){ 

trace("se cargaron las tres peliculas");

  } 
 trace(sum);    
 
} 



Agradecería si alguien me puede traer a la atención si existe algun error en mi redacción del código. Gracias por su tiempo a todos.

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Sep 2008 12:38 pm
Este post empezo porque no podía parar los swf's que llamaba para cargarse. Ahora puedo hacer el load 2 de esos swf's, menos de el último que se llama "btn_academia" que como los demás swf incluye en el último fotograma:

Código ActionScript :

stop();
_root.checkFinish();


El otro gran problema es que al publicar la película principal me como resultado que solo cargo 1 swf de los 3 que tiene que cargar y que eventualmente serán más. Estoy haciendo mi página cargando puros swf. El código que tengo hasta ahora es ese y estoy un poco liado. Porfavor alguien digame si encuentra algún error en el código.

Editado por eldervaz

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Sep 2008 04:12 pm
Ese es el problema entonces, nunca se ejecutará la función porque nada más que carga uno solo y la función se ejecuta cuando finalizan los dos.

En realidad que quieres hacer? porque dices que van a ser muchos los clips que van a cargar, depende de lo que quieras hacer me parece que este no es el método más adecuado.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 17 Sep 2008 11:13 pm
MI página tiene como estructura un fondo que es pesado de cargar como un mc, por eso lo llamo como swf. Después de que se carga el fondo se inicia una animación de introducción de un logo que se rompe y deja caer unos pedazos que al tocar el suelo, forman el trazo del contorno de los botones. Al estar el contorno trazado y vacio, aparecen los botones en un fade in. Los botones los he puesto como swf's también. Al hacer RollOver sobre los botones quiero que en el centro de la página se cambie una imágen de foto dentro de un marco que tengo. Queria hacer que en RollOver a ese swf (botón) cargara una foto en formato swf.
Al hacer Click en los botones tenia pensado llamar un swf que cubriera toda la pantalla con un alpha del 70% dejando ver el fondo. Sobre esa capa con el alpha pensaba poner los textos y las fotos de cada sección. En realidad mi pelicula principal no tiene ningun trazo, solo llama en el primer fotograma (con actionscript) a cada uno de los swf's. No se si me explico bien y me estoy complicando mucho.Grax:)

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Sep 2008 01:51 am
:swat: Usa las etiquetas bien

Código :

[as]
//Tu codigo aqui
[/as]


repite conmigo

Código :

[as]  [/as]   [as]  [/as]

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

clabbrowser
Citar            
MensajeEscrito el 18 Sep 2008 08:56 am
Recuerda que cuando lees algo externo el resultado no es inmediato, incluso es por eso que se utilizan los preloaders en las cargas externas, así que no deberías hacer que cuando se acabara la animación que termina en los botones entonces se ponga a cargar los botones porque no quedará fluida la transición entre estos dos SWF. De la misma manera, no es bueno cargar un SWF externo en un rollOver por el mismo motivo, si vas a hacer esto, o cargas el contenido al inicio de la película y después lo muestras o el contenido lo lees de la biblioteca.

Primer paso, describe como está compuesto tu fondo y por qué es tan pesado.
Y tambien describe si hay mucha diferencia entre tus módulos o estos presentan una misma estructura, es decir si se componen de imagen y texto en un mismo sitio.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Sep 2008 04:28 pm
El fondo de mi pantalla esta formado por jpg's comprimidos. EL mas pesado es de 10k aprox. Cuando lo exportaba en mi pelicula principal al comenzar el proyecto, tardaba algo de tiempo en cargar, se veia que entraba como haciendo un flashazo. No tenia preloader ni nada. Es por eso que decidi ponerlo como swf. De hecho pense que haciendolo con swf's era más conveniente.

Entre los modulos no hay mucha diferencia. Quiero poner 6/7 páginas que contengan información y fotos que no necesitan ser cambiadas con mucha frecuencia, aunque preferiría ponerlo en una especie de css en flash, aunque si no es simple la otr amanera me vale.
¿Me recomiendas poner los botones dentro de la misma película principal? Me imagino que podria hacer que empezaran el fade in a partir de que el último fotograma de la pelicula de la introducción se ejecute, vaya al fotograma x en donde tenga los botones y lo ejecute.

Por otra parte lo que decia eldervaz de las etiquetas. Tu me sugerias ponerlas para escribir el código, pero no se si aqui en la página de cristalab o en mi código tengo que empezarlo con

Código ActionScript :

 y terminarlo con 
.

Gracias por tu ayuda, a veces me hago bolas y pierdo el camino.

Por FlashFlashFLash

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Sep 2008 05:35 pm
Mira el fondo es mejor que lo tengas dentro de tu película principal si se va a mantener durante toda la película, si pesa 10kb no es tan pesado, pero no lo exportes como jpg, expórtalo como png y en flash escoges la compresión.

El inicio de la película si lo cargas externo, este al final debe tener a los botones que van a abrir las demás secciones.

Pero ahora, la mejor estrategía que debes utilizar entonces no es cargar siquiera películas externas, sino cargar textos e imágenes externas y situarlas en Campos de textos dinámicos o MovieClips respectivamente. Imagina que pinchas la primera sección, pues lees la imagen correspondiente en el MovieClip contenedor y el texto correspondiente en el campo de texto dinámico, esta me parece que sería la mejor opción a seguir.

Debes ver estos tutoriales, y empezar la tarea y postear si tienes algún problema:

http://www.cristalab.com/tutoriales/15/precargas-swf-y-jpg--en-flash-con-moviecliploader.html

http://www.cristalab.com/tutoriales/173/guia-de-loadvars-desde-acentos-a-bases-de-datos.html

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Sep 2008 06:39 pm
Lo voy a ojear, gracias por hecharme la mano

Por FlashFlashFLash

28 de clabLevel



 

firefox

 

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