對於代理類,它的作用就是在不能傳參數的時候幫助你傳參數,什麼時候不能傳參數,
像:
addEventListener(Event.COMPLETE,function)
這個時候如果我們需要給function參指定的參數以達到不同的效果,就需要用到代理..,我們看看以下的用了代理函數的代碼
addEventListener(Event.COMPLETE,getFun(function,args))
這樣,我們就可以在本來不可以傳參的情況下傳送參數.其中getFun就是代理函數.(一般網上都已經直接寫成了代理類),getFun會幫我們把function,args生成一個無參數的函數再傳給addEventListener,那麼我們原來的function只需要寫成
function(e:Event[,參數]):void{
//代碼
}
就可以了
- function getFun(_function:Function,...alt):Function{
- var _fun:Function = function (e:*):void {
- var _alt:Array = new Array()
- _function.apply(null,_alt.concat(e,alt));
- };
- return _fun;
- }