トップページ > Flash入門 > グラフを描く(1)

直線を描く

とりあえず直線を描画します

Spriteはgraphicsクラスというのを継承しているらしく,このgraphicsクラス内には直線や円など, いろいろな図形を描画する関数が含まれているようです。とりあえず,1本直線を描いてみます。

moveTo()関数で直線の開始点を設定し, lineTo()関数で直線の終点を指定します。 描画する際の線のタイプはlineStyle()関数を使って指定します。

package 
{
	import flash.display.Sprite;
	import flash.events.Event;

    //画面サイズと背景色,フレームレートを設定
    [SWF(width = "300", height = "300", frameRate = "60", backgroundColor = "0xffffcc")]  
	
	public class Main extends Sprite 
	{
		//main関数
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		//コンストラクタ
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			//スプライトを用意する
			var sp:Sprite = new Sprite();
			
			//線種を設定。太さ1,色は黒
			sp.graphics.lineStyle(1, 0x000000);
			
			//描画開始点を(100, 100)に設定
			sp.graphics.moveTo(100, 100);
			
			//(200,200)まで直線を引く
			sp.graphics.lineTo(200, 200);

			//スプライトを表示
			addChild(sp);
		}	
	}	
}

lineStyleいろいろ

描画する線の太さや色を設定するlineStyle()関数の引数は,以下のようになっています。

lineStyle(thickness, color, alpha, pixelHinting, scaleMode, caps, joints, miterLimit)

プロパティ名説明
thickness 線の太さ(0〜255) Number(実際0〜225のint型)
color 線の色 16進数(0x00ff00など)
alpha アルファ値,透過度の設定(0〜1) Number
pixelHinting ヒンティング(拡大表示時のピンボケを抑制する)の有無 Boolean
scaleMode オブジェクトが拡大・縮小される場合のモード。
LineScaleModeクラスのパラメータを指定する。
LineScaleMode.NORMAL: 線の太さがそのまま変化
LineScaleMode.NONE: 拡大・縮小しない
LineScaleMode.VERTICAL: 垂直方向のみ変化させる
LineScaleMode.HORIZONTAL: 水平方向のみ変化させる
caps 線の端部の形状(キャップ)を指定する。
capsStyleクラス内のパラメータを使って指定する。 デフォルトはROUND。
capsStyle.NONE: なし
capsStyle.ROUND: 丸める
capsStyle.SQUARE: 角ばらせる
joints 折れ線を描く時の結合部(joints)のスタイル。
JointStyleクラスのパラメータを指定する。
デフォルトはROUND。
JointStyle.ROUND: 丸める
JointStyle.BEVEL: 面取りのような感じ
JointStyle.MITER: 尖がらせる
miterLimit マイターが切り取られる限界(1〜255)
JoinStyle.MITERにした場合のみ有効。
Number

太さ,色,アルファ値を設定して描画

とりあえず,線の太さ,色,アルファ値を適当に設定してみます。

alpha = 0.5 としているので,ある程度透過していることが分かります。 線が重なる部分は色が濃くなります。

package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.Graphics;
	import flash.display.*;

    //画面サイズと背景色,フレームレートを設定
    [SWF(width = "300", height = "300", frameRate = "60", backgroundColor = "0xffffcc")]  
	
	public class Main extends Sprite 
	{
		//main関数
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		//コンストラクタ
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			//スプライトを用意する
			var sp:Sprite = new Sprite();
			
			//線種を設定。太さ10,色は青,アルファ値は0.5
			sp.graphics.lineStyle(10, 0x0000FF, 0.5);
			
			for (var i:int = 30; i < 300;i+=30 )
			{
				//縦のラインを描く
				sp.graphics.moveTo(i, 0);
				sp.graphics.lineTo(i, 300);
				
				//横のラインを描く
				sp.graphics.moveTo(0, i);
				sp.graphics.lineTo(300, i);
			}

			//スプライトを表示
			addChild(sp);
		}	
	}	
}



戻る  次へ