flex自定义无参数事件
发布时间:2020-12-15 05:10:38 所属栏目:百科 来源:网络整理
导读:自定义事件必须注意几点: (1)自定义事件通过继承Event类来实现。 (2)自定义事件不可以自己触发,只能有系统事件派发。 了解这两点后现在就可以开始自定义自己的事件了。 首先我们新建一个ActionScript Class,这个Class继承flash.events.Event。 packag
自定义事件必须注意几点: (1)自定义事件通过继承Event类来实现。 (2)自定义事件不可以自己触发,只能有系统事件派发。 了解这两点后现在就可以开始自定义自己的事件了。 首先我们新建一个ActionScript Class,这个Class继承flash.events.Event。 package { import flash.events.Event; public class MyEvent extends Event { public function MyEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false) { super(type,bubbles,cancelable); } override public function clone():Event { // TODO Auto Generated method stub return new MyEvent(type,cancelable); } } } 下面创建一个登录的组件(component),并添加和使用自定义事件 <?xml version="1.0" encoding="utf-8"?> <s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="260" fontSize="22" fontWeight="bold" textAlign="center" title="用户登录" > <fx:Declarations> <!-- Place non-visual elements (e.g.,services,value objects) here --> </fx:Declarations> <fx:Metadata> [Event(name="myevent",type="MyEvent")] </fx:Metadata> <s:Form id="loginForm"> <s:FormItem label="用户名:"> <s:TextInput id="username" textAlign="left"/> </s:FormItem> <s:FormItem label="密 码:"> <s:TextInput id="passwd" textAlign="left" displayAsPassword="true"/> </s:FormItem> </s:Form> <s:Button id="registerBtn" x="56" y="160" label="重置"/> <s:Button id="loginBtn" x="274" y="160" label="登录" click="clickHandle(event)"/> <fx:Script> <![CDATA[ private function clickHandle(event:MouseEvent):void { this.dispatchEvent(new MyEvent("myevent",true,false)); } ]]> </fx:Script> </s:TitleWindow>在主程序中引入刚才新建的component,并触发该 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:myLogin = "*" > <fx:Declarations> <!-- Place non-visual elements (e.g.,value objects) here --> </fx:Declarations> <myLogin:MyLogin id="myLogin" x="278" y="114" myevent="clickedHandle(event)"> </myLogin:MyLogin> <fx:Script> <![CDATA[ import mx.controls.Alert; private function clickedHandle(event:MyEvent):void { Alert.show("The type of this event is "+event.type+"nThe currentTarget is "+event.currentTarget+ "nThe target is "+event.target); } ]]> </fx:Script> </s:Application>效果如下: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |