Comunidad de diseño web y desarrollo en internet online

Suavizar imágenes con Actionscript 3

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.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate