イベントを無名メソッドで処理する

(サンプル一覧を表示する)

FlashDevelop を使って、イベントを無名メソッドで処理するテストをしてみました。

1 フレームごとに、値を 1 ずつ足して画面に表示しています。
FlashDevelop の設定を 60 フレーム/秒 にして出力しているので、
1 秒間に約 60 ずつ足されていきます。

フレーム開始の瞬間を通知するイベント処理用に、無名のメソッドを使っています。
無名のメソッドを使うことで、場合によってはコードが読みやすくなります。

また、名前付きのメソッドを使ってイベント処理する場合に比べて、
無名のメソッドを使った方が使用する変数のスコープをより狭い範囲に収めることができます。
Flash の実行画面
イベントを無名メソッドで処理する

Flashプレーヤーが入っていないか、JavaScriptが無効になっているようです。

Get Adobe Flash player

イベントを無名メソッドで処理する

ソースコード

package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	
	/**
	 * イベントを無名メソッドで処理するサンプル
	 * @author Hikipuro
	 */
	public class Main extends Sprite 
	{	
		/**
		 * コンストラクタ
		 */
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		/**
		 * 初期化メソッド
		 * @param	e
		 */
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			// ------------------------------------------------------
			// 表示用テキストフィールド
			var textField:TextField;
			
			// フレーム数をカウントする変数
			var count:int;
			// ------------------------------------------------------
		
			// 変数の初期化
			count = 0;
			
			// テキストフィールドの初期化
			textField = new TextField();
			
			// テキストフィールドを画面に登録
			// (登録しないと画面に表示されない)
			addChild(textField);
			
			// フレーム開始イベントに、無名メソッドを設定
			// count を 1 ずつ足して、テキストフィールドに値を表示
			addEventListener(Event.ENTER_FRAME, function (event:Event):void {
				count++;
				textField.text = count.toString();
			});
		}
		
	}
	
}