Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/09/2010, 22:56
Avatar de rusoftware
rusoftware
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario - Argentina
Mensajes: 1.083
Antigüedad: 20 años
Puntos: 2
Pregunta Problema suavizado de png con loadClip y escalado

Hola amigos.

Bueno, estoy enfrentando un problema que me tiene de los pelos. Ya he leído un post donde el usuario pudo hacerlo pero por más que sigo sus pasos no se en que me equivoco y no lo consigo (este es el post: http://foros.cristalab.com/problemas...ipload-t59557/).

Lo que necesito es cargar, mediante botones, unos logotipos en PNG (transparente), luego escalar esos png al tamaño adecuado y posicionarlos en _x y _y.

Todo esto lo tengo resuelto, salvo por el problema del suavizado, y no consigo obtener una buena calidad final. Les dejo el código que estoy utilizando:


Código actionscript:
Ver original
  1. import flash.display.*;
  2. var logoLoader:MovieClipLoader = new MovieClipLoader();
  3. var listenerLogo:Object = new Object();
  4. var loguito:MovieClip = myClipDeColor.globo.cargaLogo.createEmptyMovieClip("n", this.getNextHighestDepth());
  5.  
  6. //-> listener que crea el BitmapData y redibuja el contenido
  7. listenerLogo.onLoadInit = function(logoTarget:MovieClip):Void  {
  8.    var imgBmp:BitmapData = new BitmapData(logoTarget._width, logoTarget._height, true, 0x00FFFFFF);
  9.    imgBmp.draw(logoTarget);
  10.    logoTarget.attachBitmap(imgBmp, 1, "Auto", true);
  11.    redimensionarImg();
  12. }
  13.  
  14. //-> muestro el logo (cargo uno cualquiera de ancho y alto variable)
  15. logoLoader.addListener(listenerLogo);
  16. logoLoader.loadClip("../uploads/impresos/miLogoAMostrar.png", loguito);
  17.  
  18. //-> por ultimo la funcion que escala y posiciona mi clip
  19. function redimensionarImg(){
  20.    if(loguito._width > loguito._height){
  21.       loguito._width = 90;
  22.       loguito._yscale = loguito._xscale;
  23.    }else{
  24.       loguito._height = 120;
  25.       loguito._xscale = loguito._yscale;
  26.    }
  27.    loguito._x = (myClipDeColor.globo._width - loguito._width)/2;
  28.    loguito._y = (myClipDeColor.globo._height - (loguito._height+30))/2;
  29.    loguito.forceSmoothing = true;
  30. }




Como verán, intento en la misma película tanto la clase BitmapData como el 'forceSmoothing', pero no consigo un buen resultado.

Eso sí, (y tal vez pueda espavilar a alguno, conmigo no hay caso); si pongo en el listener un onEnterFrame al mc y lo hago ROTAR, se ve claramente que está muy suavizadito y todo, pero al dejarlo quietito donde debe estar, pues na de na.

Alguna idea que me aclare en que estoy fallando??

Gracias anticipadas