Comunidad de diseño web y desarrollo en internet online

Problema para remover contenidos al pasar de un swf a otro

Citar            
MensajeEscrito el 15 Jul 2010 06:39 pm
Mi problema es el siguiente:

La aplicación es una guía para niños que está animada en flash. Hay un swf por cada página, son 10. Unos de los swf intermedios contiene una aplicación para dibujar en el frame 50 y en el mismo frame hay un botón que lleva a una animación de salida que termina en el frame 55 y al pasar al frame 56 se carga un swf externo, el problema es que al cambiar de swf los trazos que se hicieron en el pasado swf, se quedan en el fondo y al cambio de cada swf se ve que están presentes.

¿Cómo puedo eliminarlos para que al pasar al siguiente frame donde ya no está la aplicación de dibujo desaparezcan?

El área en donde se dibuja es un shape agregado mediante:

var pintar Shape = new Shape();
addChild(pintar);


La aplicación funciona de esta manera, no es la mejor pero es provisional. Cada página (en total 10) tiene un swf llamado pag01.swf, pag02.swf, etc. Todos los .swf tienen 56 frames en total, en el frame 50 se para la animación y en este frame se colocó un botón que al darle click avanza al frame 51 donde empieza la animación de salida y termina en el frame 55, el frame 56 está vacío y se coloca el código, por ejemplo para pasar del primer .swf al segundo .swf:

var cargador:Loader = new Loader();

cargador.load(new URLRequest("pag02.swf"));
addChild(cargador);

stop();

para pasar del segundo .swf al tercer .swf se coloca en el frame 56:

var cargador:Loader = new Loader();

cargador.load(new URLRequest("pag03.swf"));
addChild(cargador);

stop();

Así es como funciona :S, espero puedan ayudarme y no haberle dado muchas vueltas al tema.

Por memo hm

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jul 2010 07:47 pm
Tienes que quitarlo, si no tienes otro elemento que hayas agregado por addChild, algo así te servirá:

this.removeChildAt(this.numChildren-1)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jul 2010 05:35 am
Ya lo pude resolver, si sabía que debía de ir un removeChild pero no sabía en donde ponerlo, en estás 4 líneas de código se resolvió:

function salir (e:Event):void{
removeChild(dibujo);
}
boton.addEventListener(MouseEvent.CLICK, salir);

Que como bien dice ahí, es el código del botón que al hacer click nos lleva a la salida de la animación, de todos modos gracias Jorge :D

Por memo hm

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Jul 2010 06:40 pm
Hola tengo un problema, hice un navegador de imagenes con botones Anterior y Siguiente, las imagenes son externas, asi q las llamo usando URLRequest y las coloco en un Contendedor llamado "CargarImagen_mc", el problema es q luego de darle varias veces atra, adelaste, atras adelante, etc, la carga de imangenes se hace lenta... me dijeron que el problema es q al ingresar una imagen nueva en "CargarImagen_mc", debo quitar la anterior, asi no se hace lente, alguien sabe como hace eso???
supongo q debe ser algo asi :

funcion Adelante(event....){
borrarImagen.CaragdorImagen_mc
.
.
.
.
}

Por lekofev

25 de clabLevel



 

msie8
Citar            
MensajeEscrito el 17 Jul 2010 06:52 pm
Al LoaderInfo object agregale su listener COMPLETE , en ese handler simplemente pon un if o un while en caso de un ” true “ remueve el children 0 de la display list de tu movieClip contenedor.

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 25 Jul 2010 07:42 pm
Aquí de nuevo con un problema:
La aplicación de mi guía infantil ya funcionaba, pero se acordó que se agregaran vistas en miniatura de las páginas para que pudiera ser más fácil accesar a cada una de ellas. Entonces el swf principal quedó como el de las vistas en miniatura y agregué un contenedor donde se cargan los sfw´s de las páginas. Hay un único frame que tiene este código:

Código ActionScript :

stop();
var cargador:Loader = new Loader();
contenedor.addChild(cargador);
cargador.load(new URLRequest ("pag42 43.swf"));

function miniatura (e:Event):void{
   cargador.load(new URLRequest ("pag42 43.swf"));
   }
   tumb1.addEventListener(MouseEvent.CLICK,miniatura);

function miniatura2 (e:Event):void{
   cargador.load(new URLRequest ("pag44 45.swf"));
   }
   tumb2.addEventListener(MouseEvent.CLICK,miniatura2);   

function miniatura3 (e:Event):void{
   cargador.load(new URLRequest ("pag46 47.swf"));
   }
   tumb3.addEventListener(MouseEvent.CLICK,miniatura3);

function miniatura4 (e:Event):void{
   cargador.load(new URLRequest ("pag46 49 intermedia.swf"));
   }
   tumb4.addEventListener(MouseEvent.CLICK,miniatura4);
   
function miniatura5 (e:Event):void{
   cargador.load(new URLRequest ("pag48 49.swf"));
   }
   tumb5.addEventListener(MouseEvent.CLICK,miniatura5);
   
function miniatura6 (e:Event):void{
   cargador.load(new URLRequest ("pag50 51.swf"));
   }
   tumb6.addEventListener(MouseEvent.CLICK,miniatura6);
   
function miniatura7 (e:Event):void{
   cargador.load(new URLRequest ("pag52 53.swf"));
   }
   tumb7.addEventListener(MouseEvent.CLICK,miniatura7);
   
function miniatura8 (e:Event):void{
   cargador.load(new URLRequest ("pag54 55.swf"));
   }
   tumb8.addEventListener(MouseEvent.CLICK,miniatura8);
   
function miniatura9 (e:Event):void{
   cargador.load(new URLRequest ("pag56 57.swf"));
   }
   tumb9.addEventListener(MouseEvent.CLICK,miniatura9);
   
function miniatura10 (e:Event):void{
   cargador.load(new URLRequest ("pag58 59.swf"));
   }
   tumb10.addEventListener(MouseEvent.CLICK,miniatura10);

Al correr el swf de las vistas en miniatura, conjuntamente al iniciar se carga el primer swf, cada uno de estos swf´s en su archivo de flash tienen sonido al iniciarse y sus botones para controlar su play y su stop del audio, y un botón para pasar al siguiente swf, si le doy click a este botón, se para el audio y sigue el siguiente swf, hasta ahí todo bien. El problema es que si le doy click a las miniaturas si se carga su swf respectivo, pero el audio del swf cargado previamente sigue reproduciéndose, no se ven las animaciones de los swf anteriormente cargados, pero al no tener un removeChild supongo que se están cargando uno encima de otro y ese hace que sigan corriendo los audios. Solo que no he podido resolver como hacerlo, intenté poner removeChild a los botones "tumb" pero pues eso hace que se vacíe el contenedor y no reproduce el siguiente frame.

Recién estoy empezando en el mundo del AS 3.0 por lo que la aplicación es básica en su estructura y también por ello no he podido resolver este problema, alguna sugerencia???

Por memo hm

6 de clabLevel



 

firefox

 

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