【原创】5分钟学会Flex自定义事件
网上介绍flex自定义事件的日志有几篇,重复的就不算了哈。
先说下login,userinfo那个,它的思路就是
1.先自定义一个事件,就是继承event类就可以了,声明个静态字符常量,再了解一下构造函数的参数。如果想用事件传递数据就定义一个变量,什么类型的变量都行,事件也是个类,它可以有自己的随意的属性。在构造函数里赋值可以,不在构造函数里也没问题,这个是很灵活的。
2.给组件加个元数据,其实就是给组件一个事件通道,目的是什么呢?用Button的时候空格一下会出个click,加个元
数据就是能出来个自己定义的名字的东东,而且用法给click一样[Event name='自己定义的名字',type=‘自定义事件的类名’],一般用个this.dispatchEvent(那个事件)给发出去
3.在它的父容器里,像用click那样用吧,指定个响应函数就OK了。然后把事件里传递的数据“卸货”。
如果有些Flex基础的话,上面这些5分钟应该能搞定一个Demo自己测测了。但这个的应用有局限性,下一位闪亮登场。
有些时候发出事件和监听事件不是父子关系,可能中间隔了好多代,甚至属于旁系亲属,上面说的方法有点力不从心。
做些小改动:
1.多声明一个EventDispatcher,静态常量。(用的时候自己的静态属性发送自己和监听自己,在任意地点)
2.根本不用什么元数据就可以实现了。发送事件用自己的静态常量dispatcher.dispatchEvent
3.接收的时候在任意地点自定义事件的常量dispatcher.addEventListener
自己用的话我推荐第二种,任意地方都能使用,很灵活。如果给别人做个组件用的话,第一种方法显然对于用的人来说
要友好了。结合这两个实例再回头看看事件流会有进一步的理解的。