as3 将类参数传递

在as3中要想将参数传递给另一个函数,写法function a(obj:object)这种写法是不正确的。

解决:增加两个类文件

package {

	/**
	 * @author bacon
	 * @version 1.0
	 * @change  
	 */
	
	public class EventDelegate {
		
		public function EventDelegate() {
			
		}
		
		public static function create(f:Function,...arg):Function {
            var F:Boolean=false;
            var _f:Function=function(e:*,..._arg){
            _arg = arg;
            if(!F){
                F = true;
                _arg.unshift(e);
			}
            f.apply(null, _arg);
            };
            return _f;
        }
	}
}

 

此类是增加参数的函数,他支持多个参数传递。

创建事件函数

package {
	import flash.events.Event;
	
	/**
	 * @author bacon
	 * @version 1.0
	 * @change  
	 */
	
	public class ScreenEvent extends Event{
		public var _data:Object;
		

		
		public function ScreenEvent(e_type:String,_data:Object)
		{
			super(e_type);
			this._data = _data;
		}
	}
	
}

 

使用方法:

要从navigation类传入show类

navigation中加入

EventDelegate.create(showphoto, photolist);
private function showphoto(event:MouseEvent,...arg):void
  {   
   dispatchEvent(new ScreenEvent("showphoto",arg[0]));
  }

 photolist为xml对象(任何对象都可以)。并将showphoto加入事件流中。

在main调用navigation中方法进行传参

navigation = new Navigation();//左	
navigation.addEventListener("showphoto", showphoto);

private function showphoto(e:ScreenEvent)
		{			
			show.showphoto(e._data);
		}

 这样就可以将参数传给show类了。

代码简写多,只是做学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值