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

Event クラス

[内容]

  Event オブジェクトに対する基本クラスです.

継承: Event → Object

[プロパティ]

[定数]  すべて static

[使用例]

  1. 使用例1 : 「この例」は,currentTarget プロパティと target プロパティの比較であり,以下に示すのがそのプログラム( Event_e.as )です.外側の四角をクリックしたときと,内側の円をクリックしたときとでは,結果が異なっていることに注意してください.
    package
    {
    	import flash.display.Sprite;
    	import flash.events.Event;
    	import flash.events.MouseEvent;
    
    	[SWF(backgroundColor="0xeeffee", width="300", height="200", frameRate="30")]
    
    	public class Event_e extends Sprite
    	{
    		public function Event_e()
    		{
    			init();
    		}
    		
    		private function init():void
    		{
    			var rect : Sprite = new Sprite();
    			rect.graphics.beginFill(0xff00ff00);
    			rect.graphics.drawRect(100, 50, 100, 100);
    			rect.graphics.endFill();
    			rect.name = "rectangle";
    			rect.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
    			addChild(rect);
    
    			var cir : Sprite = new Sprite();
    			cir.graphics.beginFill(0xff0000ff);
    			cir.graphics.drawCircle(150, 100, 20);
    			cir.graphics.endFill();
    			cir.name = "circle";
    			rect.addChild(cir);
    		}
    
    		private function onMouseDown(event:MouseEvent):void {
    			trace("target = " + event.target.name);
    			trace("currentTarget = " + event.currentTarget.name);
    					// 外側の四角をクリックしたとき
    					//		target = rectangle
    					//		currentTarget = rectangle
    					// 内側の円をクリックしたとき
    					//		target = circle
    					//		currentTarget = rectangle
    		}
    	}
    }
    			

  2. 使用例2 : 以下に示すのは,enterFrame イベントを利用したアニメーション(ボールをクッリクすると停止し,もう一度クリックすると再び動き出します)に対するプログラム Ball.as です.enterFrame イベントは,ActionScript の実行が完了し次のフレームのレンダリングを開始する準備が整ったとき,または,フレームレートで定められた時間が経過したときに発生します.ただし,フレームレートで定められた時間が経過しても,ActionScript の実行が完了していない場合は,その完了まで最大 15 秒待ちます.
    package {
    	import flash.display.Sprite;
    	import flash.events.Event;
    	import flash.events.MouseEvent;
    
    	[SWF(backgroundColor="0xeeffee", width="600", height="400", frameRate="30")]
    
    	public class Ball 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 Ball() {
    			init();
    		}
    
    		private function init():void {
    			ball = new Sprite();
    			addChild(ball);
    			ball.graphics.beginFill(0x00ff00);
    			ball.graphics.drawCircle(0, 0, 40);
    			ball.graphics.endFill();
    			ball.x = 0;
    			ball.y = 0;
    			addEventListener(Event.ENTER_FRAME, onEnterFrame);
    			ball.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
    		}
    
    		private function onEnterFrame(event:Event):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;
    				}
    				trace("position", ball.x, ball.y);
    			}
    		}
    
    		private function onMouseDown(event:MouseEvent):void {
    			if (sw == 0)
    				sw = 1;
    			else
    				sw = 0;
    		}
    	}
    }
    			

[参照]

DisplayObject クラス

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