Micaela 23 de marzo de 2009 a las 10.58
   Imprimir artículo
elWebmaster.com

Cómo arreglar píxeles borrosos en Flex


flexLos p√≠xeles borrosos son l√≠neas semi-transparentes que aparecen en los bordes de los sprites y los hacen lucir borrosos o difusos. Esto es el resultado de posicionar un sprite dibujado como se acostumbra en n√ļmeros de p√≠xeles no enteros.

La mayor√≠a de las veces un sprite se programa en un n√ļmero de p√≠xeles decimales porque el posicionamiento est√° basado en una ecuaci√≥n matem√°tica. Uno de los mayores problemas con esto es que el p√≠xel borroso posee un efecto de catarata que har√° que todo lo contenido en n√ļmeros decimales de ese sprite¬† posea ejes semi-transparentes.

Este es un ejemplo ampliado de c√≥mo lucen los p√≠xeles borrosos. El primer y segundo cuadrado fueron dibujados utilizando la misma funci√≥n de dibujo. Uno est√° colocado en un p√≠xel entero y el otro en uno de n√ļmero decimal.

pixel

Código ActionScript que produce los píxeles borrosos

  1. private var fuzzySquare:Sprite;
  2. private var square:Sprite;
  3. private var squareContainer:Sprite;
  4. public function draw():void
  5. {
  6. squareContainer = new Sprite();
  7. squareContainer.x = 1;
  8. squareContainer.y = 1;
  9. square = new Sprite();
  10. square.x = 0;
  11. square.y = 0;
  12. square.graphics.clear();
  13. square.graphics.beginFill(0x0000FF);
  14. square.graphics.drawRect(0,0,30,20);
  15. square.graphics.endFill();
  16. squareContainer.addChild(square);
  17. fuzzySquare = new Sprite();
  18. fuzzySquare.x = square.x + square.width + 3.5;
  19. fuzzySquare.y = 0;
  20. fuzzySquare.graphics.clear();
  21. fuzzySquare.graphics.beginFill(0x0000FF);
  22. fuzzySquare.graphics.drawRect(0,0,30,20);
  23. fuzzySquare.graphics.endFill();
  24. squareContainer.addChild(fuzzySquare);
  25. container.addChild(squareContainer);
  26. }

Soluciones

Utiliza Math.floor o Math.ceil en todos los cálculos matemáticos relacionados con el posicionamiento de los sprites dibujados con la función de gráficos.

Otra opción es, en lugar de dibujar los sprites utilizando gráficos, podrías convertirlos en imágenes, embeberlos y posicionarlos en la escena. Esta es la mejor opción si deseas que el objeto se vea bien en todo momento.

Fuente: blackcj.com


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder