Comunidad de diseño web y desarrollo en internet online

Precargar bitmaps

Citar            
MensajeEscrito el 11 Abr 2012 08:47 am
Muy buenas a tod@s,

Estoy haciendo una aplicación en Flex con FlashBuilder que contiene algunas imágenes, en formato PNG (aunque luego las convierto a Bitmap usando el componente BitmapImage). El tema es que estas imágenes las tengo que mostrar vía MXML, y es lo que hago ahora, pasando como "source" en cada una de ellas la ruta del proyecto donde están almacenadas.

El tema es que probando la aplicación en un Galaxy S las imágenes cargan lento de cojones (bueno, no tanto, pero se tardan demasiado aún siendo bastante pequeñas en tamaño). He pensado que sería buena idea intentar tener algunas cargadas en memoria al iniciar la aplicación, pero no tengo demasiada idea de cómo hacerlo. He buscado ejemplos pero nada.

La idea sería poder "precargar" esas imágenes en AS3 al principio en una función Init que tengo y meterlas en un Dictionary. Luego, y usando MXML, debería poder acceder a ese diccionario para mostrarlas cuando quiera en las vistas. No sé cómo "vincular" objetos de imagen creados previamente en AS con algún tipo de componente MXML, ya que BitmapImage, por ejemplo, sólo me permite pasarle la ruta con un string en "source".

¿Alguien sabe cómo llevar a cabo esto? ¡Muchas gracias por adelantado!

Por hellbert

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Abr 2012 04:21 pm
Usualmente las imagenes embebidas no tienen tiempo de carga, esto ocurre con las imagenes externas ... porque hay que cargarlas desde el servidor. Lo tuyo parece ser un tema de rendering, explicanos mas acerca de ese componente BitmapImage y por que lo necesitas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Abr 2012 08:29 am
Las imágenes las tengo todas en local, en una carpeta del proyecto. Son PNG todas ellas, y no muy grandes en tamaño. Uso el componente de Spark BitmapImage, pero también puedo usar el Image a secas, el problema ocurre igual: al probar la aplicación en el dispositivo (un Galaxy S, en mi caso) las imágenes tardan un poco en cargar, de hecho lo hacen después de haberse cargado la vista con los demás componentes, textos, etc. Es como que todo se ha cargado bien, pero al cabo de 1 segundo, ¡PUM! se cargan las imágenes.

En un iPhone 3G ocurre lo mismo, pero se tardan algo menos. Probaré de embeber las imágenes en los MXML, o de cambiar el modo de rendering a GPU, a ver si la cosa mejora. También miraré de usar la caché de Flex para los bitmaps.

Lo que pretendía decir en el post anterior es que tal vez podía cargar todas las imágenes al arrancar la aplicación en la RAM, ya que al parecer se están cargando cada vez que las vuelvo a ver (por ejemplo: tengo un slider con imágenes que, si lo corro rápido, veo como algunas aparecen de nuevo "en blanco" hasta que se cargan, y eso ocurre siempre en el mismo slider, sin necesidad de recargar la vista).

Tal vez no se puede hacer, no lo sé, soy bastante neófito en Flex. Pero me parece raro!

Gracias!

Por hellbert

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Abr 2012 01:56 pm
Intuyo que no se puede hacer nada al respecto, entonces. Flex carga las imágenes con un lag bastante desastroso en dispositivos y qué le vamos a hacer :D

Por hellbert

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Abr 2012 02:12 pm
Ahora mismo estoy usando bitmaps embebidos para juegos sobre un framework (Starling) que renderea sobre GPU, y la verdad no me pasa. Tendría que probar tu caso y la verdad no tengo tiempo, pero me va a pasar porque tendré que hacer algunas cosas de esas ... cuando me toque lo investigo, sorry

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 Abr 2012 02:19 pm
OK! Gracias, Jorge! Tranquilo, seguro que hay alguna forma de solucionarlo, seguiré investigando. Tú a lo tuyo!

Por hellbert

5 de clabLevel



 

chrome

 

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