Cuando trabajabamos con imágenes muy grandes, o con cierto grado de calidad (por ejemplo en una galería dinámica), en Flash Player 8.5 y anteriores, aparecía un horrendo pixeleado (Bug) resultado de escalar, rotar, o mover la imagen.
No fue sino hasta la aparición de AS3, que se volvió sencillo solucionar ese problema. Es por ello que en este Tip, muestro una simple solución; tan solo agregando un evento al final de la carga de la imagen:
Código :
var imageRequest:URLRequest = new URLRequest("imagen ext"); var loader:Loader = new Loader(); // loader.load(imageRequest); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fix_image); // function fix_image(e:Event):void { var bitmap:Bitmap = e.target.content; if (bitmap != null) {bitmap.smoothing = true;} addChild(loader);}Esta es la estructura básica para cargar una imagen externa, donde:
- imageRequest: va a hacer la llamada a la imagen, aquí nombrada como "imagen ext". Obviamente ahí va una ubicación real de una imagen a cargar.
- loader: es el objeto creado donde se carga la imagen, y el cual; al terminar de cargarla se le asignara el Evento para activar la función.
- contentLoaderInfo: va a funcionar para crear el Evento para llamar a la función fix_image; encargada de arreglar la imagen.
Como podrás ver, bitmap.smoothing es el centro de toda la función, ya que se encarga de evitar el Bug dentro del Player, aquí les dejo un pequeño ejemplo del código mostrado:
Arrastra la imagen de arriba para ver el resultado
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Victor-Nael el 09 de Noviembre de 2008
Excelente tip.
Por Freddie el 03 de Diciembre de 2008
Por Bleend el 03 de Diciembre de 2008
Haz un tip/tuto de como manejar objetos con colisiones y massas. Please.
¿... o podrías mostrar el código de ese ejemplo?
Gracias M@U. Buen tip.
Por tomasdev el 04 de Diciembre de 2008
1- Excelente tip (información importante)
2- Me morí cuando leí algo que Bleend no supiera hacer!
Por M@U el 05 de Diciembre de 2008
Por Quien yo? el 16 de Diciembre de 2008
Por aSnO el 05 de Enero de 2009
ahora una pregunta, cómo lo haría si la imagen que quiero suavizar la tengo importada en mi stage? y estoy haciendole una rotacion dinámica?
Por M@U el 05 de Enero de 2009
aSnO-blog :
ahora una pregunta, cómo lo haría si la imagen que quiero suavizar la tengo importada en mi stage? y estoy haciendole una rotacion dinámica?
Por JaLeRu el 07 de Enero de 2009
Por mo el 20 de Febrero de 2009
gracias y saludos!
Por r2edu el 24 de Abril de 2009
Si ya la tenes importada en tu pelicula, fijate que en las propiedades de la imagen en la libreria hay una opcion "allow smoothing".
De todos modos, muy util la guia... gracias!
Por Pablo el 27 de Enero de 2010
Me gustó mucho el ejemplo, podrias poner el código?
Por gesher el 28 de Febrero de 2011
podrias poner el codigo del ejemplo tambien?