Utilizzate l'API di disegno per ottenere un'esecuzione più rapida del codice.
Flash Player 10 e AIR 1.5 offrono una nuova API di disegno che consente di ottenere prestazioni migliori nell'esecuzione del codice. La nuova API non migliora le prestazioni di rendering, ma consente di ridurre anche sensibilmente il numero di righe di codice da scrivere. Meno righe di codice assicurano un'esecuzione più efficiente del codice ActionScript.
La nuova API di disegno comprende i seguenti metodi:
-
drawPath()
-
drawGraphicsData()
-
drawTriangles()
Nota:
questa sezione non prende in esame il metodo
drawTriangles()
, che riguarda gli oggetti 3D. Tuttavia, questo metodo può migliorare le prestazioni del codice ActionScript, perché gestisce la mappatura delle texture in modo nativo.
Il codice seguente chiama esplicitamente il metodo appropriato per ogni riga che viene disegnata:
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 );
Il codice seguente viene seguito più rapidamente di quello dell'esempio precedente perché è costituito da meno righe. Più complesso è il tracciato, maggiore è il guadagno in termini di prestazioni derivante dall'uso del metodo
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 );
Il metodo
drawGraphicsData()
offre un simile miglioramento delle prestazioni.