Comunidad de diseño web y desarrollo en internet online

Garbage Collection [Consejos]

Citar            
MensajeEscrito el 21 Jul 2009 10:53 am
Buenos dias, me presento pues creo que es la primera vez que escribo despues de llevar leyendo este foro en plan Voyeur desde hace años.

La cuestión de mi post, algo que por fin no he podido encontrar con el botoncito Buscar y que tampoco comprendo leyendo los tutoriales, es la siguiente:

Tengo esta función para cargar las diferentes secciones, las ordenes son pasadas mediante dispatchEvent desde el swf cargado cada vez.

Código ActionScript :

private function cargarSeccion(proximaSeccion) {
         seccionClip = null 
         seccionLoader.unLoad()
         seccionLoader.alpha = 0
         seccionLoader.load( new URLRequest (proximaSeccion));
         seccionLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
         
         function onLoaderComplete(e:Event) {
            TweenMax.to (seccionLoader, 1, { alpha:1 } )
            seccionClip = e.target.content
            
            seccionClip.addEventListener("menuClientes", cargaClientes);
            seccionClip.addEventListener("menuProyectos", cargaProyectos);
            seccionClip.addEventListener("menuEstudio", cargaEstudio);
            seccionClip.addEventListener("menuBlog", cargaBlog);
            seccionClip.addEventListener("clientesVolver", cargaHome);
            
            function cargaClientes (e:Event) {
            cargarSeccion ("clientes.swf")
            }
            
            function cargaProyectos (e:Event) {
            cargarSeccion ("proyectos.swf")
            }
            
            function cargaEstudio (e:Event) {
            cargarSeccion ("estudio.swf")
            }
            
            function cargaBlog (e:Event) {
            cargarSeccion ("blog.swf")
            }
            
            function cargaHome (e:Event) {
            cargarSeccion ("home.swf")
            }
         }
      }


El tema es que segun voy cargando secciones la memoria usada crece exponencialmente y me gustaria que alguién me aconsejara la mejor manera de no cargar tanto la maquina porque la pagina al final muere. Ya he leido los post referentes al Garbage Collector y he probado los consejos que en el se dan (week references y todo eso) y la página sigue muriendo, así que he determinado que esta funcion que pongo arriba tiene que estar hecha un desastre. ¿Algun consejo? Gracias de antemano

La verdad es que no soy experto en AS3 pues esta es mi segunda página (y no veas como sudé en la primera)

Por riolcrt

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Jul 2009 11:05 am
Estás metiendo la declaración de los callbacks dentro del onLoaderComplete y estos se declaran una y otra vez cada vez que cargas una sección. No declares los callbacks dentro del onLoaderComplete, no reutilices cargarSeccion (crea otra nueva) para no redeclarar re-agregar los listeners cada vez (que ahora se acumulan)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Jul 2009 12:20 pm
gracias por la respuesta, es algo que me remoloneaba el alma, el problema de cuando saco los callbacks de ahi es que el content que cargo en seccionClip al no tener referencias desaparece cuando se ejecuta la funcion y necesito acceder al content desde otra funcion

Por riolcrt

5 de clabLevel



 

chrome

 

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