Sha256: 7b7e49fa08911b46ddf92ed6b4f7676d1fefb35317e2a8a6d6ff409e9cb79d61
Contents?: true
Size: 1.35 KB
Versions: 6
Compression:
Stored size: 1.35 KB
Contents
package fx.util { /** * リスナ */ public class ListenerSupport { /** * リスナ */ private var listeners:Object = {}; /** * イベントリスナを追加する。 */ public function addEventListener( type:String, listener:Function, self:*=null, priority:int=0 ):void { var list:Array = listeners[type]; if ( !list ) { list = []; listeners[type] = list; } list.push( {listener:listener, priority:priority, self:self} ); list.sortOn( "priority", Array.NUMERIC); } /** * イベントリスナを削除する。 */ public function removeEventListener( type:String, listener:Function ):void { var list:Array = listeners[type]; if ( list ) { var tmp:Array = []; list.forEach( function(item:*,i:int,arr:Array):void { if ( item.listener != listener ) tmp.push( item ); } ); listeners[type] = tmp; } } /** * イベントをキックする */ public function fire( type:String, ev:* ):void { var list:Array = listeners[type]; if ( !list ) { return; } for ( var i:int=0; i<list.length; i++ ) { list[i].listener.apply( list[i].self, [ev] ); } } } }
Version data entries
6 entries across 6 versions & 2 rubygems