読者です 読者をやめる 読者になる 読者になる

flex基本プログラム2

とりあえずソース

●Game.as

/**
	Author		:	$Author$
	Date		:	$Date$
	version		:	$Revision$	
	Description	:	ゲームクラス

	Copyright (C) 2009 by Kambayashi
*/

package{
	import flash.display.Sprite;
	import flash.display.Shape;
	import flash.display.Bitmap;
	import flash.display.Graphics;
	import flash.display.BitmapData;
	import flash.utils.Timer;
	import flash.geom.Rectangle;
	import flash.events.TimerEvent;

	public class Game extends Sprite {
		//タイマーインターバル
		public static const TIMER_INTERVAL:Number	= 32;

		//描画キャンバス
		private var canvas:BitmapData;
		
		/**
			コンストラクタ(プログラム開始点) 
		*/
		public function Game(){
			//描画キャンバスを作成して描画ツリーに登録
			canvas = new BitmapData( 100, 100, false, 0xFFFFFFFF );
			addChild( new Bitmap( canvas ) );
					  
			//初期化処理へ
			init();
		}

		/**
			初期化
		*/
		public function init() : void {
			//タイマーを作成して定期更新を行うようにする
			var timer:Timer = new Timer( TIMER_INTERVAL, 0 );
			timer.addEventListener( TimerEvent.TIMER, onTick );
			timer.start();
		}

		/**
			タイマー処理
		*/
		private function onTick( in_evt:TimerEvent ) : void {
			//画面クリア
			canvas.fillRect( canvas.rect, 0xFEFF80FF );

			//描画オブジェクト作成
			var shape:Shape = new Shape();
			var g:Graphics = shape.graphics;
			
			//赤い円描画
			g.beginFill( 0xFFFF0000 );
			//g.lineStyle( 2, 0xFF00FF00 );	//緑の境界線を付ける
			g.drawCircle( 30, 30, 15 );
			g.endFill();
			canvas.draw( shape );
			g.clear();

			//青い矩形描画
			g.beginFill( 0xFF0000FF );
			g.lineStyle( 2, 0xFF00FF00 );	//緑の境界線を付ける
			g.drawRect( 60, 60, 100, 100 );
			g.endFill();
			canvas.draw( shape );
			g.clear();
		}
	}
}

解説

プログラムは前回と同じで3つのメソッドで構成。
変更点はonTick()内部のみ。
実行すると、ピンクっぽい背景に赤い丸と緑の境界線をもつ青い矩形が表示される。

flash.display.shape

shapeは単純な表示オブジェクトクラス。
プログラムのメインクラス(Gameクラス)が継承しているSpriteクラスと似ているが、
Spriteクラスは子表示オブジェクトを持てるのに対し、Shapeクラスは持てない。


クラスの使用法はソース参照。
事前にShapeオブジェクトをGame(Sprite)オブジェクトに登録しておいて、
毎フレームShapeオブジェクトを書き換える方法もある。