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: 6839,
today: 2,
yesterday: 0
|