L’API de dessin accélère l’exécution du code.
Flash Player 10 et AIR 1.5 intègrent une nouvelle API de dessin visant à optimiser les performances d’exécution du code. Si elle n’assure pas de meilleures performances de rendu, cette API permet cependant de réduire le nombre de lignes de code nécessaires, et cette réduction se traduit par une optimisation des performances d’exécution d’ActionScript.
La nouvelle API de dessin comporte les méthodes suivantes :
-
drawPath()
-
drawGraphicsData()
-
drawTriangles()
Remarque :
nous ne nous attarderons pas ici sur la méthode
drawTriangles()
, qui concerne le 3D. Cette méthode permet toutefois d’optimiser les performances d’ActionScript, car elle gère le mappage des textures en natif.
Le code ci-dessous appelle explicitement la méthode appropriée pour chaque ligne à tracer :
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 );
Le code suivant s’exécute plus rapidement que celui de l’exemple précédent, car il contient un moins grand nombre de lignes. Plus le tracé est complexe et meilleures sont les performances résultant de l’utilisation de la méthode
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 );
La méthode
drawGraphicsData()
offre des possibilités d’optimisation similaires.