Interfejs API rysowania umożliwia szybsze wykonywanie kodu.
W programie Flash Player 10 i środowisku AIR 1.5 udostępniono nowy interfejs API, który umożliwia wydajniejsze wykonywanie kodu. Ten interfejs API nie zwiększa wydajności renderingu, ale korzystanie z niego może znacznie skrócić program użytkownika. Mniejsza liczba wierszy kodu ActionScript może przekładać się na zwiększenie wydajności jego wykonywania.
Nowy interfejs API rysowania udostępnia następujące metody:
-
drawPath()
-
drawGraphicsData()
-
drawTriangles()
Uwaga:
W niniejszym podręczniku nie opisano metody
drawTriangles()
, która jest związana z pracą w 3D. Jednak ta metoda może zwiększać wydajność kodu ActionScript, ponieważ obsługuje rodzime odwzorowania tekstur.
Poniższy kod jawnie wywołuje odpowiednią metodę dla każdej rysowanej linii:
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 );
Poniższy kod jest wykonywany szybciej niż poprzedni, ponieważ liczba wykonywanych wierszy jest mniejsza. Im bardziej skomplikowana jest ścieżka, tym większy jest wzrost wydajności po zastosowaniu metody
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 );
Metoda
drawGraphicsData()
umożliwia uzyskanie podobnego wzrostu wydajności.