API de desenho

Use a API de desenho para executar o código mais rapidamente.

O Flash Player 10 e o AIR 1.5 fornecem uma uma nova API de desenho, que permite obter melhor desempenho da execução de código. Essa nova API não proporciona nenhum aprimoramento ao desempenho da renderização, mas pode reduzir drasticamente o número de linhas de código a ser programado. Um número menor de linhas de código pode proporcionar melhor desempenho da execução do ActionScript.

A nova API de desenho inclui os seguintes métodos:

  • drawPath()

  • drawGraphicsData()

  • drawTriangles()

Nota: Esta discussão não se concentra no método drawTriangles() , relacionado a 3D. No entanto, esse método pode aprimorar o desempenho do ActionScript, visto que lida com o mapeamento de textura nativo.

O código a seguir chama explicitamente o método apropriado para cada linha que está sendo desenhada:

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 );

O código a seguir é executado mais rapidamente do que o exemplo anterior, visto que executa menos linhas de código. Quanto mais complexo o caminho, maior o ganho em desempenho obtido com o uso do 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 );

O método drawGraphicsData() oferece aprimoramentos semelhantes ao desempenho.