ベクターでの描画をしてみました。

Flash10から追加された配列みたいなベクター形式を使って描画をしてみました。
こんな感じ
http://moeten.info/flex/20081016_fp10Test/bin-release/test05.html

ベクター配列(?)を使って描画する利点はなんといってもまとめて描画コマンドの指定と座標の指定ができる点。
作成者はベクター配列さえ注目すればいいので楽ちん。
こちらのページが詳しいです。

ソースはこちら

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    creationComplete="init()" width="800" height="800"
     backgroundGradientColors="[0xffffff,0xcccccc]"
    >
<mx:Script>
<![CDATA[
import __AS3__.vec.Vector;
private function init():void{
    //コマンド
    /*
        NO_OP:int    = 0;
        MOVE_TO:int  = 1;
        LINE_TO:int  = 2;
        CURVE_TO:int = 3;
        WIDE_MOVE_TO = 4;
        WIDE_LINE_TO:int = 5;
    */
    var commands:Vector.<int> = new Vector.<int>();
    //ポイント(x、y)
    var data:Vector.<Number>  = new Vector.<Number>();
    //コマンドと座標を追加
    for( var i:int = 0 ; i < 100 ; i ++ ){
        commands.push( 3);
        data.push( Math.random()*80, Math.random()*80);
    }
    //描画用コンポーネント作成
    var shape:Shape = new Shape();
    myUI.addChild( shape );
    shape.filters = [dsf];
    //描画
    shape.graphics.beginFill( 0xffffff );
    //せっかくなのでベクターを拡大+描画
    shape.graphics.drawPath( commands , scaleVector( data , 10 ) , "evenOdd" );
    shape.graphics.endFill();
}
//ベクターを拡大
private function scaleVector( vec:Vector.<Number> ,scaleBy:Number ):Vector.<Number>{
    var scaled:Vector.<Number> = new Vector.<Number>( vec.length , vec.fixed );
    var i:int = vec.length;
    while( i -- ){
        scaled[i] = vec[i] * scaleBy;
    }
    return scaled;
}
]]>
</mx:Script>
<mx:DropShadowFilter id="dsf" angle="0" blurX="10" blurY="10" color="0x000000" distance="0"/>
<mx:UIComponent id="myUI" width="100%" height="100%"/>
</mx:Application>