EventDispatcher?

addEventListener?の第3引数、第5引数

addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

useCapture

false(デフォルト。リスナーはイベントをターゲットおよびバブリングフェーズのみで処理する。)
true(リスナーはイベントをキャプチャーフェーズのみで処理する)

 ※子から親ノードへイベントが伝達して行くのが、バブリングフェーズ。
 ※親から子ノードへイベントが伝達していくのが、キャプチャーフェズ。

useWeakReference?

false(デフォルト。強い参照。リスナーがガーベジコレクションの対象にならない。)
true(弱い参照。ガーベジコレクションが働く。)

 ※ガーベジコレクションとは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能。


addEventListener?の第2引数

第2引数のメソッドに引数を渡す場合、以下のように記述する。 by t- 

a.addEventListener(BulkLoader.ERROR, func(a,b));

public function func(a:uint, b:uint):Function {
	return function(evt:Event):void {
		//aとbを使った処理
	};
}


こんな感じ?

package classes {
	import classes.*;

	import flash.display.MovieClip;
	import flash.events.*;

	public class Base extends MovieClip {

		public function Base():void {
			mouseTest();
		}

		private function mouseTest():void {
			var donkey_name:String = 'Donkey';
			var donkey_age:uint = 10;
			donkey_mc.addEventListener(MouseEvent.CLICK, mouseClickHandler(donkey_name, donkey_age), false, 0 , true);
		}

		public function mouseClickHandler(donkey_name:String, donkey_age:uint):Function {
			return function (event:MouseEvent):void {
				trace('Donkey Status. donkey_name = ' + donkey_name + ' / donkey_age = ' + donkey_age);
			}
		}
	}
}


removeEventListener?

arguments.calleeを使ってリスナーの名前を取得し削除する。

package classes {
	import classes.*;

	import flash.display.MovieClip;
	import flash.events.*;

	public class Base02 extends MovieClip {

		public function Base02():void {
			removeTest();
		}

		private var i:uint = 1;

		private function removeTest():void {
			addEventListener(Event.ENTER_FRAME, removeEvent);
		}

		private function removeEvent(e:Event):void {
			trace('removeTest = ' + String(i++));
			if(i > 10) {
				removeEventListener(Event.ENTER_FRAME, arguments.callee);
			}
		}
	}
}


Comment



Counter: 5541, today: 1, yesterday: 1

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:02 (1280d)