「Flex/fps」の編集履歴(バックアップ)一覧に戻る

Flex/fps - (2014/06/12 (木) 20:29:38) のソース

|開発環境|Apache [[Flex]] SDK 4.12.1|
||FlashDevelop 4.6.1|
|実行環境|Microsoft Windows 8.1 (64bit)|
|プロジェクトの種類|ActionScript 3/AS3 Project|
|プロジェクト名|fps|
#table_zebra(project, #fff, #eee)

Main.as
#highlight(actionscript){{
package 
{
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.utils.getTimer;
	
	public class Main extends Sprite 
	{
		private var textField:TextField = new TextField();
		private var sprite:Sprite = new Sprite();
		private var count:Number = 0;
		private var timer:int = getTimer();
		
		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
			
			stage.color = 0x4695ed;
			
			stage.addChild(textField);
			stage.addChild(sprite);
			
			// テキストフィールド
			textField.x = 100;
			textField.y = 100;
			textField.width = 200;
			textField.height = 50;
			textField.border = true;
			
			var textFormat:TextFormat = new TextFormat();
			textFormat.size = 32;
			textField.defaultTextFormat = textFormat;
			
			// スプライト
			var g:Graphics = sprite.graphics;
			g.lineStyle(5, 0x000000);
			g.beginFill(0xffff00);
			g.drawRect( -100, -100, 200, 200);
			g.endFill();
			
			sprite.x = stage.stageWidth / 2;
			sprite.y = stage.stageHeight / 2;
			
			stage.addEventListener(Event.ENTER_FRAME, enterFrame);
		}
		
		private function enterFrame(e:Event):void 
		{
			sprite.rotation += 2;

			count++;
			if (1000 <= getTimer() - timer)
			{
				textField.text = count + "/" + stage.frameRate + "fps";
				timer = getTimer();
				count = 0;
			}
		}
		
	}
	
}
}}