Comunidad de diseño web y desarrollo en internet online

Flash:el monstruo come memoria?Ayuda con un reproductor

Citar            
MensajeEscrito el 17 Sep 2010 05:38 pm
Hola amigos de Cristalab :)

Les comento que tengo un problema ahora que regreso a programar en Flash :(

El proyectito es crear un reproductor de swf's dinámicamente, es decir que yo le pase una lista y con AS se carguen a memoria y se vayan reproduciendo uno detrás de otro.

El problema es que después de algún tiempo la memoria llega a su límite y hay que cerrar la aplicación porque queda congelada :(

¿Cual es mi procedimiento?

    1. Bajar la lista con un URLRequest y URLLoader. Esta información es colocada en un array.
    2. Con otro URLRequest y un Loader cargo a memoria el swf que corresponde.
    3. Cuando el listener correspondiente me indica que ya cargó le doy AddChild al contenido del Loader que previamente es almacenado en un MovieClip. Es decir hago esto:

    Código :

    Movie = MovieClip(Cargador.content);
    Movie.gotoAndStop(1);
    Cargador.unloadAndStop();
    addChild(Movie);


    4. Utilizo un Timer global que en un tiempo determinado regresa a la misma función que carga el siguiente swf y que a su vez cargará el siguiente y asi sucesivamente. Es un loop en pocas palabras ya que al llegar al final de la lista reinicio el conteo.
    5. Los Listeners son removidos al finalizar su uso y el Loader le aplico UnloadAndStop() cuando pasé su contenido a la variable Movie.


He hecho de todo para que Flash no se convierta en un monstruo come memoria peeeeerooo no lo he logrado :(

He aquí algunas de las cosas que he intentado:

    1. Un array que contenga todos los swf's y solo darle AddChild y RemoveChild cuando haya terminado.
    2. Cargar el swf que corresponde, al terminar descargarlo y cargar el nuevo. AddChild y RemoveChild correspondientes.
    3. Cargar todos los swf's a memoria sin reproducirlos para ver si varía la memoria. Resultado: Mientras no se agreguen a escena y se reproduzcan no hay aumento.


Debo aclarar que he programado tomando en cuenta el uso de WeakReferences y además he removido los Listeners que utilizo. Por si fuera poco en mi desesperación paso el Garbagge Collector cada vez que finaliza el ciclo aunque eso no ayuda en nada. :(

¿Alguna idea o sugerencia?

Mil gracias por su ayuda de antemano, sé que es mucho texto pero creo que el problema es relativamente sencillo pero aún asi no encuentro la respuesta que busco :cry:

Utilizo Flash CS4 y AS3

Por driegon

36 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Sep 2010 06:13 pm
Parece que estás haciendo lo correcto desde el reproductor ... ¿pero que pasa con las pelis cargadas? ¿Usan programación? ¿Liberan sus recursos?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Sep 2010 06:23 pm
Saludos solisarg!

Pues fijate que me comentaban que lo único que tienen los swf's son play() y stop() al final..

He notado que hay problema especialmente en los swf's que contienen videos además de la animación inicial :S
En ellos la memoria crece y crece hasta quedarse en un lugar donde ya no baja sino que al llegar nuevamente a ellos sube otra vez.. :'(

Seguramente correspondería una prueba con un swf simple como me lo planteas, lo tomaré en cuenta aunque quizás alguien tenga alguna otra idea para resolver el problemas :?

Por driegon

36 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Sep 2010 06:25 pm
Los videos se cargan en memoria RAM para reproducirse, hay que cerrar el NetStream y borrarlo apropiadamente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Sep 2010 08:30 pm
Ok, pues te comento como dato que a los swf's se les importa el video y se inserta en el TimeLine a través de un MovieClip, igualmente se puede o se debe utilizar lo del NetStream? Si es asi podrías iluminarme de como hacerlo? ^^'

Muchas gracias :D

Por driegon

36 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Sep 2010 08:32 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Sep 2010 04:21 pm
estaré probando en estos días y te cuento, gracias por tu ayuda!

Por driegon

36 de clabLevel



Genero:Masculino  

firefox

 

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