とりあえず、AS3(Flash9)でいろいろ描画

■細かい事は、他のサイトでも説明していると思うのでとばして、描画クラス「Glib01.as」をプロジェクトに追加する所からはじめます

これでダイアログが出てきますので、「Glib01.as」を入力し追加してください。

追加が終わると。

そして、実際のソースは
「Glib01.as」

package {
	import flash.display.*;
	import flash.geom.*;
	import flash.text.*;

	public class Glib01 {		
		//----------------------------------------------------
		private	var bd:BitmapData;
		private	var width:uint;
		private	var height:uint;
		private	var label:TextField;
		private	var format:TextFormat;

		//----------------------------------------------------
		//
		public function Glib01( w:uint, h:uint ){
			bd	= new BitmapData( w, h, false, 0xffffff );
			//------------------------------
			label		= new TextField();
			label.autoSize	= TextFieldAutoSize.LEFT;
			format		= new TextFormat();
			format.font	= "_等幅";
			SetColor( 0x000000 );
			SetFontSize( 24 );
			//------------------------------
			width	= w;
			height	= h;
		}

		//----------------------------------------------------
		//
		public	function	SetFontSize( size:int):void{
			var	i:uint;
			
			for( i = size+10 ; i >= 1 ; i-- ){
				format.size	= i;
				label.setTextFormat( format );
				if ( label.textWidth <= size )
					break;
			}
		}
		//----------------------------------------------------
		//文字表示
		public	function	Print(x:int, y:int, text:String ):void{
			if ( text == null )
				return;
			label.text=text;
			label.setTextFormat(format);
			var	pos:Matrix	= new Matrix();
			pos.translate(	x-(label.width - label.textWidth )/2,
					y-(label.height-label.textHeight)/2-label.textHeight);
			bd.draw(label,pos);
		}
		//----------------------------------------------------
		//
		public	function GetBitmapData():BitmapData {
			return	bd;
		}
		//----------------------------------------------------
		//画面初期化
		public function Cls( color:uint ):void{
			BoxFill( 0, 0, width, height, color );
		}
		//----------------------------------------------------
		//表示色設定
		public	function SetFontColor( color:uint ):void {
			format.color	= color;
		}
		//----------------------------------------------------
		//
		public function DrawBoxFill(x:int, y:int, w:int, h:int, color:uint ):void{
			bd.fillRect( new Rectangle( x, y, w, h ), color );
		}
		//----------------------------------------------------
		//
		public function DrawBoxLine(x:int, y:int, w:int, h:int, color:uint ):void{
			var line:Shape = new Shape();
			line.graphics.lineStyle(0,color);
			line.graphics.moveTo(x,y);
			line.graphics.lineTo(x+w,y);
			line.graphics.lineTo(x+w,y+h);
			line.graphics.lineTo(x,y+h);
			line.graphics.lineTo(x,y);
			bd.draw( line );
		}
		//----------------------------------------------------
		//
		public function DrawPolygon3(x0:int, y0:int, x1:int, y1:int, x2:int, y2:int, color:uint ):void{
			var line:Shape = new Shape();
			line.graphics.beginFill(color);
			line.graphics.moveTo( x0, y0 );
			line.graphics.lineTo( x1, y1 );
			line.graphics.lineTo( x2, y2 );
			line.graphics.endFill();
			bd.draw( line );
		}
		//----------------------------------------------------
		//
		public function DrawPolygon4(x0:int, y0:int, x1:int, y1:int, x2:int, y2:int , x3:int, y3:int, color:uint ):void{
			var line:Shape = new Shape();
			line.graphics.beginFill(color);
			line.graphics.moveTo( x0, y0 );
			line.graphics.lineTo( x1, y1 );
			line.graphics.lineTo( x2, y2 );
			line.graphics.lineTo( x3, y3 );
			line.graphics.endFill();
			bd.draw( line );
		}
		//----------------------------------------------------
		//
		public function DrawLine(x0:int, y0:int, x1:int, y1:int, color:uint ):void{
			var line:Shape = new Shape();
			line.graphics.lineStyle(0,color);
			line.graphics.moveTo(x0,y0);
			line.graphics.lineTo(x1,y1);
			bd.draw( line );
		}
		//----------------------------------------------------
		//
		public	function DrawSprite(source:IBitmapDrawable, x:int, y:int ):void {
			if( source == null )
				return;
			var pos:Matrix=new Matrix();
			pos.translate( x, y );
			bd.draw( source, pos );
		}
	}
}

■「Main.as」はこんなソース
「Main.as」

package {
	import	flash.display.*;
	import	flash.geom.*;
	import	flash.events.*;
	import	flash.utils.*;

	public	class Main extends Sprite {
		[Embed(source='mimi.png')]
		private var imageClass:Class;
		private var bData:Bitmap	= new imageClass();

		private	var g:Glib01	= new Glib01( 640, 480 );
		private	var vx:int	= 2;
		private	var xx:int	= 0;
		//-------------------------------------
		//
		public	function	Main(){
			addChild( new Bitmap( g.GetBitmapData() ) );
			
			var	timer:Timer=new Timer(32,0);
			timer.addEventListener(TimerEvent.TIMER,onTick);
			timer.start();
		}
		//-------------------------------------
		//
		private function onTick( evt:TimerEvent ):void{
			g.Cls(0x8080ff);
			g.DrawPolygon3( 0, 0, 50, 20, 20, 50,0xff0000 );
			g.DrawPolygon4( 50, 50, 150, 20, 150, 150 ,60, 150,0xff00ff );
			g.DrawSprite( bData, xx, 200-xx );
			g.DrawBoxLine( xx,10, 100, 100,0x00ff00 );

			g.SetFontColor( 0x000000 );
			g.Print( 200, 50, "xx="+xx);
			xx	+= vx;
			if( xx < 0 || xx > 200 )
				vx	= -vx;
		}
	}
}

■画面の設定
この描画クラスでは、640X480のイメージデータをつくり、そこに描画していく流れになります。
まずは640X480のイメージデータを内部で作成

private	var g:Glib01	= new Glib01( 640, 480 );

作成したイメージデータを登録

public	function	Main(){
	addChild( new Bitmap( g.GetBitmapData() ) );

となっています。
■定期的に呼ばれる関数。
この部分で定期的に「onTick」が呼ばれるように設定します。

public	function	Main(){
 	  :		
	var	timer:Timer=new Timer(32,0);
	timer.addEventListener(TimerEvent.TIMER,onTick);
	timer.start();
}

■いつもの「mimi.png」を使用します。

[Embed(source='mimi.png')]

「src」ディレクトリの下で「Main.as」「Glib01.as」と同じディレクトリに「mimi.png」を置いておいてください

■実行
実行する時は「Main.as」が選択されている事を確認してからコンパイル+実行をしてください。

今回のソースは実行すると