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

Version Path
unageanu-jiji-1.2.3 swf/chart/fx/util/ListenerSupport.as
unageanu-jiji-1.2.4 swf/chart/fx/util/ListenerSupport.as
jiji-1.2.8 swf/chart/fx/util/ListenerSupport.as
jiji-1.2.7 swf/chart/fx/util/ListenerSupport.as
jiji-1.2.6 swf/chart/fx/util/ListenerSupport.as
jiji-1.2.5 swf/chart/fx/util/ListenerSupport.as