Flex的自定义事件
发布时间:2020-12-15 04:21:32 所属栏目:百科 来源:网络整理
导读:魔豆的BLOG ?? ? Flex4中的自定义事件 1.方式一:通过继承Event类编写Flex4的自定义事件 下面我们来做一个例子,实现这样的功能:监控TextInput的输入,通过监控输入的内容,触发不同的自定义事件。 我们先来写这个自定义事件: ActionScript类Test43Event.c
魔豆的BLOG ?? ? Flex4中的自定义事件 1.方式一:通过继承Event类编写Flex4的自定义事件 下面我们来做一个例子,实现这样的功能:监控TextInput的输入,通过监控输入的内容,触发不同的自定义事件。 我们先来写这个自定义事件: ActionScript类Test43Event.cs package demo { ??? import flash.events.Event; ??? ? ??? public class Test43Event extends Event ??? { ??????? public static var Test43_Number:String = "number"; ??????? public static var Test43_Letter:String = "letter"; ??????? public static var Test43_Other:String = "other"; ??????? ? ??????? public function Test43Event(type:String,bubbles:Boolean=false,cancelable:Boolean=false) ??????? { ??????????? super(type,bubbles,cancelable); ??????? } ??? } } ? 然后添加一个MXML应用程序test43.mxml调用这个自定义事件 ?? ? <?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" creationComplete="application1_creationCompleteHandler(event)"> ??? <s:layout> ??????? <s:BasicLayout/> ??? </s:layout> ? ??? <fx:Script> ??????? <![CDATA[ ??????????? import mx.events.FlexEvent; ??????????? protected function textinput1_keyDownHandler(event:KeyboardEvent):void ??????????? { ??????????????? var test43Event:Test43Event; ??????????????? if(event.keyCode>=48 && event.keyCode<=57)??? //0-9 ??????????????? { ??????????????????? test43Event = new Test43Event(Test43Event.Test43_Number); ??????????????????? dispatchEvent(test43Event); ??????????????? } ??????????????? else if(event.keyCode>=65 && event.keyCode<=90)?? //a-z A-Z ??????????????? { ??????????????????? test43Event = new Test43Event(Test43Event.Test43_Letter); ??????????????????? dispatchEvent(test43Event); ??????????????? } ??????????????? else ??????????????? { ??????????????????? test43Event = new Test43Event(Test43Event.Test43_Other); ??????????????????? dispatchEvent(test43Event); ??????????????? } ??????????? } ??????????? ? ??????????? private function func1(event:Event):void ??????????? { ??????????????? if(event.type==Test43Event.Test43_Letter) ??????????????? { ??????????????????? msg.text = "当前输入的是字母"; ??????????????? } ??????????????? else if(event.type==Test43Event.Test43_Number) ??????????????? { ??????????????????? msg.text = "当前输入的是数字"; ??????????????? } ??????????????? else if(event.type==Test43Event.Test43_Other) ??????????????? { ??????????????????? msg.text = "当前输入的是其他字符"; ??????????????? } ??????????? } ? ??????????? protected function application1_creationCompleteHandler(event:FlexEvent):void ??????????? { ??????????????? this.addEventListener(Test43Event.Test43_Letter,func1); ??????????????? this.addEventListener(Test43Event.Test43_Number,func1); ??????????????? this.addEventListener(Test43Event.Test43_Other,func1); ??????????? } ? ??????? ]]> ??? </fx:Script> ? ??? <fx:Declarations> ??????? <!-- 将非可视元素(例如服务、值对象)放在此处 --> ??? </fx:Declarations> ??? <s:TextInput id="text1" x="140" y="157" keyDown="textinput1_keyDownHandler(event)"/> ??? <s:Label id="msg" x="140" y="128"/> </s:Application> ? ? 2.方式二:直接使用dispatchEvent编写Flex4的自定义事件 ?? ? <?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" creationComplete="application1_creationCompleteHandler(event)"> ??? <s:layout> ??????? <s:BasicLayout/> ??? </s:layout> ??? <fx:Script> ??????? <![CDATA[ ??????????? import mx.events.FlexEvent; ? ??????????? protected function application1_creationCompleteHandler(event:FlexEvent):void ??????????? { ??????????????? ? ??????????????? this.addEventListener("Letter",func1); ??????????????? this.addEventListener("Other",func1); ??????????? } ??????????? ? ??????????? private function func1(event:Event):void ??????????? { ??????????????? if(event.type == "Letter") ??????????????? { ??????????????????? msg.text = "当前选择的是字母"; ??????????????? } ??????????????? else ??????????????? { ??????????????????? msg.text = "当前选择的不是字母"; ??????????????? } ??????????? } ? ? ??????????? protected function textinput1_keyDownHandler(event:KeyboardEvent):void ??????????? { ??????????????? if(event.keyCode>=65 && event.keyCode<=90)??? //a-z A-Z ??????????????? { ??????????????????? dispatchEvent(new Event("Letter")); ??????????????? } ??????????????? else ??????????????? { ??????????????????? dispatchEvent(new Event("Other")); ??????????????? } ??????????? } ? ??????? ]]> ??? </fx:Script> ??? <fx:Declarations> ??????? <!-- 将非可视元素(例如服务、值对象)放在此处 --> ??? </fx:Declarations> ??? <s:TextInput x="180" y="179" keyDown="textinput1_keyDownHandler(event)"/> ??? <s:Label x="179" y="143" id="msg"/> </s:Application> ? ? Copyright @ 魔豆 Powered by: .Text and ASP.NET Theme by: .NET Monster
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |