关于回调函数传参数问题[批量加载中会经常用到]

方式一: 1.用内联函数传参 (只适用于一个回调加载, 多个时候不行) 例:
比如我们要在callbackFunction函数中传递一个字符串'id is:'和一个整型15,实现方法请参见如下代码:

var str:String = 'id is:';

var num:int = 15;


Alert.show("是否删除该条目?","确认删除",Alert.YES|Alert.NO,this,function(e:CloseEvent):void{callbackFunction(e,str,num)});


private function callbackFunction(event:CloseEvent,str:String,num:int):void{
        if(Alert.YES == event.detail){
            //当点击YES时的操作
            Alert.show(str+num.toString(),"您点击了YES按钮");
        }else{
            //当点击NO时的操作
        }
 } 


 方式二:用自定义事件(有点小问题)

                

package {
   
   import flash.events.Event;
 
   public class CustomEvent extends Event {
     
      public static const CUSTOM:String = "custom";
     
      public var arg:*;
     
      public function CustomEvent(type:String, customArg:*=null,
                                  bubbles:Boolean=false,
                                  cancelable:Boolean=false) {
         
         super(type, bubbles, cancelable);
         
         this.arg = customArg;
         
      }
           
      public override function clone():Event {
         return new CustomEvent(type, arg, bubbles, cancelable);
      }
     
      public override function toString():String {
         return formatToString("CustomEvent", "type", "arg",
                               "bubbles", "cancelable", "eventPhase");
      }
   
   }
 
}


方式三:推荐(Dictionary)用Dictionary保存Loader

private var hashmap:Dictionary = new Dictionary ;   //存放Loader[e.target]对象
				for each(var path:String in arrpath){
					var loader:URLLoader = new URLLoader();
					loader.addEventListener(Event.COMPLETE,onLoadComplete);   //回调函数传参数
					hashmap[loader] = {path:path , i:'i'}  ;  //设置参数
					loader.load(new URLRequest(path));
				}

/**
		 * callback function for loader
		 * */
		private function onLoadComplete(e:Event):void{
			var loader:URLLoader = e.target as URLLoader ;
			var params:Object = hashmap[loader] ;
			trace(params) ;
			
			var content:String = e.target.data as String ;
			//var path:String = e.arg as String ;
		}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值