Code is beautiful

2009-07-16

ActionScript 3.0にて画像埋め込み、マウスイベント

画像を動かしつつ、マウスダウンにて停止、再開。

あまり面白味はないけど、書き慣れる為にもう少し練習。

http://good-morning-world.com/swf/loadgraphic/

loadgraphic.as

package 
{
	import flash.display.*;
	import flash.events.*;
	import flash.text.*;
	import flash.utils.*;
	
	[SWF(width = 400, height = 300)]
	public class loadgraphic extends Sprite {
		// 埋め込む画像ファイル
		[Embed(source = 'gifFile.gif')]
		private var PICTURE:Class;
		
		private var tfield:TextField = new TextField();
		private var mouse:String = "";
		private var pic:Bitmap = new PICTURE();
		private var dx:int = 4;
		private var dy:int = 4;
		private var flag:Boolean = true;
		
		public function loadgraphic() {
			var sprite:Sprite=new Sprite();
			sprite.graphics.beginFill(0x999999);
			sprite.graphics.drawRect(0,0,400,300);
			sprite.graphics.endFill();
			addChild(sprite);
			
			// 48×48にて読み込み
			pic.x = 0;
			pic.y = 0;
			pic.width = 48;
			pic.height = 48;
			addChild(pic);
			
			// テキストフィールド
			tfield.x = 0;
			tfield.y = 0;
			tfield.autoSize = TextFieldAutoSize.LEFT;
			addChild(tfield);
			
			sprite.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
			
			var timer:Timer = new Timer(30, 0);
			timer.addEventListener(TimerEvent.TIMER, onTick);
			timer.start();
		}
		
		private function onTick(event:TimerEvent):void {
			if(flag) {
				pic.x += dx;
				pic.y += dy;
				if (pic.x + pic.width > 400 || pic.x < 0) { dx = -dx; }
				if (pic.y + pic.height > 300 || pic.y < 0) { dy = -dy; }
			}
			var str:String = "マウスクリックで停止、再開\n";
				str += "画像X:" + pic.x + "\n画像Y:" + pic.y + "\n";
				str += "マウスX:" + Math.floor(mouseX) + "\nマウスY:" + Math.floor(mouseY);
			tfield.text = str;
		}
		
		private function onMouseDown(event:MouseEvent):void {
			if (flag) { flag = false; } else { flag = true; }
		}
	}
}
トラックバック - http://d.hatena.ne.jp/H6K/20090716/p1