静岡理工科大学 菅沼ホーム ActionScript 目次 索引

Timer クラス

[内容]

  タイマーの設定と解除を行うためのクラスです.

継承: Timer → EventDispatcher → Object

[プロパティ]

[メソッド]

[イベント]

[使用例]

  1. アニメーション」は,Timer クラスを使用したアニメーション例であり,そのプログラム( Timer_e.as )を以下に示します.この例では,33 ミリ秒間隔で 400 回繰り返されると停止します.
    package {
    	import flash.display.Sprite;
    	import flash.events.MouseEvent;
    	import flash.events.TimerEvent;
    	import flash.utils.Timer;
    
    	[SWF(backgroundColor="0xeeffee", width="600", height="400", frameRate="30")]
    
    	public class Timer_e extends Sprite {
    		private var ball : Sprite;
    		private var g : Number = 9.8;
    		private var v0 : Number = 0;
    		private var v : Number = 0;
    		private var t : Number = 0;
    		private var h0 : Number = stage.stageHeight;
    		private var sw : Number = 1;
    
    		public function Timer_e() {
    			init();
    		}
    
    		private function init():void {
    			var tt : Timer = new Timer(33, 400);
    			ball = new Sprite();
    			addChild(ball);
    			ball.graphics.beginFill(0x00ff00);
    			ball.graphics.drawCircle(0, 0, 40);
    			ball.graphics.endFill();
    			ball.x = 0;
    			ball.y = 0;
    			tt.addEventListener(TimerEvent.TIMER, next);
    			tt.addEventListener(TimerEvent.TIMER_COMPLETE, stop);
    			tt.start();
    		}
    
    		private function next(event:TimerEvent):void {
    			if (ball.x < stage.stageWidth + 40 && sw > 0) {
    				ball.x += 1.5;
    				t      += 0.1;
    				v       = -g * t + v0;
    				ball.y  = stage.stageHeight - (-0.5 * g * t * t + v0 * t + h0);
    				if (ball.y >= stage.stageHeight - 40 && v < 0) {
    					ball.y = stage.stageHeight - 40;
    					v0     = -0.8 * v;
    					h0     = 40;
    					t      = 0;
    				}
    			}
    		}
    
    		private function stop(event:TimerEvent):void {
    			trace("End of Timer");
    		}
    	}
    }
    			

[参照]

TimerEvent クラス

静岡理工科大学 菅沼ホーム ActionScript 目次 索引