¿Quieres registrarte?

Suavizar imágenes con Actionscript 3

Por: M@U
9 de Noviembre del 2008
5085 de clabLevel
Otros artículos de M@U
5,017 visitas

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:


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

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas animacion efectos actionscript_3

Comentarios | Enviar un comentario
Muy bueno, ^^

Excelente tip.
Por: Victor-Nael
Esto es increiblemente util como no tienen idea. Ojala más gente supiera esto al manipular bitmaps en AS3.
Por: Freddie
¿Como haces eso? ¿Matrices de inercia?

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: Bleend
ja! Dos cosas:
1- Excelente tip (información importante)
2- Me morí cuando leí algo que Bleend no supiera hacer!
Por: tomasdev
@Bleend: De momento, el código que emplee aquí en el ejemplo esta en el foro de pruebas, en uno de mis particulares post´s... Eso en lo que lo hago una clase, o parecido para publicarlo... Saludos !
Por: M@U
Muy buen aporte!
Por: Quien yo?-blog
super!!
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: aSnO

aSnO-blog :

super!!
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?
Te refieres a ¿que la tienes ya en por defecto en el escenario, y no la cargas dinamicamente?
Por: M@U
Uff muy muy muy util. Muchas gracias M@U
Por: JaLeRu
oye, estoy usando un componente (photoflow) que carga las imagenes automaticamente desde una carpeta pero salen serruchadas, que puedo hacer ahi? perdon pero mis conocimientos de as son muy basicos...

gracias y saludos!
Por: mo
Esto ya se podia hacer en AS2, era un poquito mas largo pero el resultado era el mismo.

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?


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: r2edu-blog
Muy bueno el aporte.

Me gustó mucho el ejemplo, podrias poner el código?
Por: Pablo-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.