API de dibujo

Utilice la API de dibujo para una ejecución más rápida del código.

Flash Player 10 y AIR 1.5 incluía una nueva API de dibujo, que permite obtener un mejor rendimiento en la ejecución del código. Esta nueva API no supone una mejora del rendimiento de representación, pero puede reducir en gran medida el número de líneas de código que se debe escribir. Al contar con menos líneas de código, se puede obtener un mejor rendimiento de ejecución de ActionScript.

La nueva API de dibujo incluye los siguientes métodos:

  • drawPath()

  • drawGraphicsData()

  • drawTriangles()

Nota: este análisis no se centra en el método drawTriangles() , que está relacionado con 3D. No obstante, este método puede mejorar el rendimiento de ActionScript, ya que administra los mapas de textura nativos.

El siguiente código llama de forma explícita al método adecuado para cada línea que se dibuja:

var container:Shape = new Shape(); 
container.graphics.beginFill(0x442299); 
 
var coords:Vector.<Number> = Vector.<Number>([132, 20, 46, 254, 244, 100, 20, 98, 218, 254]); 
 
container.graphics.moveTo ( coords[0], coords[1] ); 
container.graphics.lineTo ( coords[2], coords[3] ); 
container.graphics.lineTo ( coords[4], coords[5] ); 
container.graphics.lineTo ( coords[6], coords[7] ); 
container.graphics.lineTo ( coords[8], coords[9] ); 
 
addChild( container );

El siguiente código se ejecuta más rápido que el ejemplo anterior, ya que se ejecutan menos líneas de código. Cuanto más complejo sea el trazado, más aumentará el rendimiento al utilizar el método drawPath() :

var container:Shape = new Shape(); 
container.graphics.beginFill(0x442299); 
 
var commands:Vector.<int> = Vector.<int>([1,2,2,2,2]); 
var coords:Vector.<Number> = Vector.<Number>([132, 20, 46, 254, 244, 100, 20, 98, 218, 254]); 
 
container.graphics.drawPath(commands, coords); 
 
addChild( container );

El método drawGraphicsData() proporciona mejoras de rendimiento similares.