flex 自定义事件
发布时间:2020-12-15 04:59:30 所属栏目:百科 来源:网络整理
导读:我们自定义事件的执行的过程: 1.我们对于控件的操作产生了事件 2.事件被派发出去 3.事件产生的影响又在界面上体现了出来 自定义事件类 MyEvent :package utils{import flash.events.Event;public class MyEvent extends Event{ public static const EVENT_
我们自定义事件的执行的过程: 1.我们对于控件的操作产生了事件 自定义事件类 MyEvent : package utils { import flash.events.Event; public class MyEvent extends Event { public static const EVENT_TEST:String = "EventTest"; public static const ROLL_OVER:String = "RollOver"; public function MyEvent(type:String,bubbles:Boolean=true,cancelable:Boolean=false) { super(type,bubbles,cancelable); } } } 自定义控件 MyButton: <?xml version="1.0" encoding="utf-8"?> <mx:Button xmlns:mx="http://www.adobe.com/2006/mxml" click="dispatchEvent(new MyEvent(MyEvent.EVENT_TEST))" rollOver="dispatchEvent(new MyEvent(MyEvent.ROLL_OVER))" > <!-- 当button被点击的时候就会派发一个新的事件,就是一个类型为MyEVENT.Event_TEST的事件 --> <!-- 注意这个地方的Event的名称要和上面派发的事件的名称要完全一致就是: 我们所派发的事件,只有在我们的控件里面被定义了,并且在调用的时候被定义了, 那么在事件被触发的时候它才会产生效果。 --> <mx:Metadata> [Event(name="EventTest",type="utils.MyEvent")] [Event(name="RollOver",type="utils.MyEvent")] </mx:Metadata> </mx:Button> 测试页面 testMyButton: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:my="utils.*" > <mx:Script> <![CDATA[ import mx.controls.Alert; import utils.MyEvent; private function handleEvent(e:MyEvent):void { trace(e); } private function roolOverHandler(e:MyEvent):void { Alert.show("rollOVer事件被触发了"); trace(e); } ]]> </mx:Script> <!-- 触发事件所执行的方法是我们自己随便定义的,关键是事件要可以被触发, 事件被触发的关键就在于MyButton位置的定义,对不同的操作派发不同的事件 这样我们这边才会做出响应。 --> <my:MyButton id="my1" label="ChangeTextArea" EventTest="myTa.text='got event'" x="208" y="213"/> <my:MyButton id="my2" label="Trace" EventTest="handleEvent(event)" x="209" y="258"/> <my:MyButton id="my3" label="roolOver" RollOver="roolOverHandler(event)"/> <mx:TextArea id="myTa" x="141" y="55"/> </mx:Application> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |