AS3 精进中,发现graphics.drawPath()这个方法相当好用,于是写了一个小例子。
package {
import flash.display.Sprite ;
import flash.display.Graphics ;
import flash.display.StageAlign ;
[ SWF ( backgroundColor = 0xfffff0 , width = 500 , height = 500 )]
public class ChessBoard extends Sprite {
private var cellSize : Number = 50 ;
private var count : int = 5 ;
private var g : Graphics ;
private var datas : Vector .< Number >;
private var commands : Vector .< int >;
public function ChessBoard () {
stage . align = StageAlign . TOP ;
g = graphics ;
g . clear ();
datas = new Vector .< Number >();
commands = new Vector .< int >();
for ( var i : int = 0 ; i < count ; i ++){
commands . push ( 1 , 2 , 2 , 2 , 2 );
var initY : Number = cellSize * i * 2 ;
datas . push ( 0 , initY ,
count * cellSize * 2 , initY ,
count * cellSize * 2 , initY + cellSize ,
0 , initY + cellSize ,
0 , initY );
commands . push ( 1 , 2 , 2 , 2 , 2 );
var initX : Number = cellSize * i * 2 ;
datas . push ( initX , 0 ,
initX , count * cellSize * 2 ,
initX + cellSize , count * cellSize * 2 ,
initX + cellSize , 0 ,
initX , 0 );
}
g . beginFill ( 0x000000 );
g . drawPath ( commands , datas );
}
}
}