打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
AS3)Flash(非Flex)开发中通过事件传递参数的一种方法

之前我发过一篇Flex开发中通过事件传递参数的文章,前几天又使用flash开发一个小东西遇到在flash中传递参数的问题。

以下是一个小例子,有两个函数,test()函数是来使用Loader加载一张图片,我们侦听下载完成事件,并传递一个数字111作为参数。(当然这个参数你可以自己定义,类型随意,我这个参数和加载是无关的,只是想演示通过事件可以传递参数)

函数onLoaderComplete(i:int)loader事件完成的侦听函数,并包含参数(i:int)要传递参数,它的返回值类型必须是Function,并且函数中要定义另一个函数来接收事件var fun:Funciton=funcion(e:Event){}花括号中即可按照正常侦听函数一样操作事件结果,并可

操作传递进来的参数 i

这两个函数如下:

public function test():void {

       var n:int = 111;

       var my_Loader:Loader = new Loader();  

       my_Loader.load(new URLRequest(test.png));   

       my_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaderComplete(n));

}

public function onLoaderComplete(i:int):Function {

       var fun:Function=function(e:Event)  

       {

              trace(i);

              this.addChild = e.target.content;

       }            

       return fun;

}

============================================

另外一个例子:

舞台放个按钮,给按钮加个侦听,然后传一个参数过去,我点按钮,在按钮点击事件处理函数中输出这个参数,同时我也输出事件类型:(注意:这个例子是Flash CS5 AS3项目,可能和CS3、CS4看上去有区别

代码:

效果:


-

关于事件的移除:

这种方式定义侦听后,可能会出现事件侦听不好移除的问题,可以用这样的方式移除侦听:

EventDispatcher(event.currentTarget).removeEventListener(event.type, arguments.callee);
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
flex 强大的navigateToURL方法
BitmapData 详解(一)(转)
Flash cs3、Flex与asp、php通信总结(包含数据库)-Flash actio...
FlexBlazeDS在Java中进行AMF数据封装通信
了解Flex程序的生命周期
AS3加载机制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服