Comunidad de diseño web y desarrollo en internet online

SWF se pone lento a medida que ingreso a cada seccion en AS3

Citar            
MensajeEscrito el 29 Mar 2010 12:57 pm
Hola Cristalab, como andan?.
Tengo un problema con un sitio que carga imágenes en forma externa. Se me pone lenta la película Flash en AS3 a medida que ingreso en cada nueva seccion que no ingresé. Osea... para pasar un poco más en limpio esto lo voy a explicar así:

1. Ingreso al sitio y todo bien (las imágenes se cargan bien y la transición entre foto y foto que hay en la sección se reproduce a una velocidad normal).
2. Entro a otra sección y todo bien aunque se nota una casi imperceptible reducción de velocidad de transición entre fotos que hay también en esta sección.
3. Entro a otra sección distinta de las que ya visité y se empieza a notar más la reducción de velocidad de reproduccion del player.
4. Y así continuando con las otras 2 secciones restantes.

Es una página sencilla que sólo muestra fotos en cada sección (haciendo una transicion de opacidad); las cuales no pesan menos de 20Kb y no más de 65Kb. La cantidad de fotos que se cargan es de mas o menos 25.
Francamente no se cual será el problema porque no creo que sea un problema de la cantidad de fotos que cargo ni el peso de estas.
Uso una instancia de Timer para hacer la transición de fotos para cada sección que hay en el sitio (hago play()) y stop() para iniciar y detener el Timer).
Uso TweenLite para los Tweens.

Bueno gente, eso es todo, espero me puedan ayudar, un saludo.

Por hetors

93 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Mar 2010 07:01 pm
Yo pensaria q es un problema de remover lo q no estas usando, fijate de q los movies, swf o imagenes q ya no estas viendo o usando los remuevas del escenario para q no te consuma procesador

Por el_putas

58 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Mar 2010 02:13 am
claro cada vez q cargas una seccion tendrías q destruir la otra pq se irán acumulando, incluso si vuelves a entrar a la primera y sigues creando loaders nuevos los anteriores siguen estando residentes, yo cargaria cada seccion en un swf distinto y cada vez q entro a una pongo el loader = null; de la sección anterior. ( osea destruyo la carga del swf)

Saludos!

Por Pablokorku

60 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Mar 2010 03:26 pm
Voy a probar lo que dicen chicos pero quería preguntarte una cosa Pablokorku, ¿vos me decís que haga un loader=null sobre cada foto que cargue?, ¿que hace exactamente asignarle el NULL a una instancia de Loader? ¿nos sería lo mismo hace un unload()?.
Espero me puedan ayudar un poquito más :D , jajaja.
Saludos.

Por hetors

93 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Mar 2010 03:35 pm
Otra cosa que no agregué en mensajes anteriores es que cuando paso a otra sección descargo a las fotos usando el Loader.unload(); y también hago un removeChild(...); de las fotos y sigue moviendose lenta la reproducción de flash a medica que entro a las secciones (en forma paulatina)... no se lo que será el problema :(.
Ayuda :(
Saludos.

Por hetors

93 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Mar 2010 03:47 pm
unload() no existe más en AS3, el swf q contiene las fotos de cada sección debes cargarlo con un objeto loader, (por ej. loader.load("seccion1.swf"); este objeto es el q luego tenés q poner null, haces removeChild(loader); (lo saca del display list) y loader = null; (lo deja nulo para q el garbage collector lo limpie)...

paso en limpio, me imagino q tendrás botones o algo así...
si estás trabajando con clases el ldr te combiene declararlo arriba así es global osea private var ldr:Loader;
if (ldr != null) { //pregunto si no es nulo (osea hay un ldr cargado) removelo y destruilo
removeChild(ldr);
ldr = null;
}
//hacé uno nuevo...
ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, mostrarSeccion);
ldr.load(new URLRequest("seccion1.swf"));

function mostrarSeccion(e:Event)
{
addChild(ldr);
}
si el código lo pegas en un botón o mc ponele adelante MovieClip(root). ldr en vez de ldr sólo ya q queremos la variable en el root.

Saludos!

Por Pablokorku

60 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Mar 2010 03:55 pm
Gracias por responder Pablokorku, una cosa... unload() del objeto Loader está documentado en la ayuda de Adobe.
Ahora me pongo a probar con asignar NULL a las instancias de Loader para ver si arreglo el problema.
Saludos y gracias (ojalá funcione :oops: ).

Por hetors

93 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Mar 2010 04:03 pm
si es correcto en el caso de loader, no te había entendido q era ahí q lo usabas...

Por Pablokorku

60 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 Mar 2010 02:42 pm
Ahh :shock: , me sale un error asignando NULL a una instancia de Loader.

Código ActionScript :

1105: El destino de la asignación debe ser un valor de referencia.


Tengo los nombres de las intancias de Loader en un arreglo para luego acceder a ellas por medio del getChildByName() pero me sale ese error.
Yo probé con:

Código ActionScript :

Loader(getChildByName(ordenFotosCargadas[i])) = null;


y con

Código ActionScript :

getChildByName(ordenFotosCargadas[i]) = null;


Pero me sale el mismo error, no se cual será el problema :shock: !!!
Probando el sitio una y otra vez me di cuenta que hay como un pequeño retraso cuando accedo a las secciones, yo pensé que eran los tweens porque son como 5 pero cuando saco estos tweens sigue habiendo esa pequeña pausa (delays en el que pareciera que se pusiera en pausa la reproducción del SWF varias veces). Yo no se si será porque vuelvo a cargar el mismo XML que contiene la informacion de cada una de las fotos o no se que . :shock: .
Bueno, ayuda, a agluien le pasó lo que me pasa a mi?.

Por hetors

93 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Abr 2010 04:39 pm
Ayuda... help... :( ... no entiendo cual es el problema sobre mi pelicula flash.
Es muy raro porque no es la animación o la cantidad de tweens que hay, parece como si fuera el Timer...
Bueno, les agredeciría si me pueden tirar alguna ayuda.
Saludos.

Por hetors

93 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Ago 2010 12:50 pm
Bueno, parece ser que la nueva actualización de la versión del Flash Player arregló el problema que yo tenía con la pelicula Flash. En varios sitios que visité vi que la gente se enojaba por el mal funcionamiento del garbage collector... por eso pienso que las ultimas actualizaciones del Player arreglaron este asunto.
¿Agluien sabe cual es la última versión del Flash Player que salio?. Yo tengo la 10,1,53,64 para Windows.
Saludos.

Por hetors

93 de clabLevel



 

firefox

 

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