드로잉 API

드로잉 API를 사용하면 코드 실행 속도가 빨라집니다.

Flash Player 10 및 AIR 1.5에서는 실행 성능이 더 나은 새로운 드로잉 API를 제공합니다. 이 새 API는 렌더링 성능을 향상시키지는 않지만 작성해야 하는 코드의 줄 수를 대폭 줄일 수 있습니다. 코드 줄이 감소되면 ActionScript 실행 성능이 향상될 수 있습니다.

새 드로잉 API에는 다음 메서드가 포함됩니다.

  • drawPath()

  • drawGraphicsData()

  • drawTriangles()

참고: 여기서는 3D와 관련된 drawTriangles() 는 자세하게 다루지 않습니다. 하지만 이 메서드는 기본 텍스처 매핑을 처리하기 때문에 ActionScript 성능을 향상시킬 수 있습니다.

다음 코드는 그려지는 각 줄에 대해 해당 메서드를 호출합니다.

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

다음 코드는 실행하는 코드 줄이 더 적기 때문에 이전 예제보다 빠르게 실행됩니다. 경로가 복잡할수록 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 );

drawGraphicsData() 메서드를 사용해도 비슷한 정도의 성능 개선을 이끌어 낼 수 있습니다.