`
whp0731
  • 浏览: 170423 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

flex 自定义控件、事件

    博客分类:
  • flex
阅读更多

自定义控件、自定义事件

引子:前面主要用action script3来定义事件、在此用MXML来自定义控件、自定义事件

具体可参考源代码及其执行:

一、源代码                    

1是通过新建new/MXML conpoment 同时,在填入信息时选择继承自panel

1、LoginForm.mxml

<?xml version="1.0" encoding="utf-8"?>

<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="348" height="200" borderColor="#3CD5E3" title="登录表单" fontSize="12" fontWeight="bold">

    <mx:Metadata>

       [Event(name="loginEvent",type="com.events.loginformEvent")]-执行过程④

 

    </mx:Metadata>

    

    <mx:Script>

       <![CDATA[

           import com.events.loginformEvent;

           

           internal function onClick(evt:MouseEvent):void{-执行过程②

              var e:loginformEvent=new loginformEvent("loginEvent");-执行过程③

              e.name=txt_name.text;

              e.password=txt_pwd.text;

              

              dispatchEvent(e);

           }

           

       ]]>

    </mx:Script>

    

    <mx:Label x="42" y="33" text="用户名:" height="22" fontSize="12" fontWeight="bold"/>

    <mx:Label x="42" y="76" text="密码:" fontSize="12" fontWeight="bold"/>

    <mx:TextInput x="110" y="33" id="txt_name"/>

    <mx:TextInput x="110" y="74" id="txt_pwd" displayAsPassword="true"/>

    <mx:Button x="110" y="114" label="登录" id="btn_login" fontSize="12" 

       fontWeight="bold" width="69" click="onClick(event)"/>-执行过程①

    

</mx:Panel>

 

2、EventMXML.xml

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*">

 

    <mx:Script>

       <![CDATA[

           

           import mx.controls.Alert;

           import com.events.loginformEvent;

           

           internal function login(evt:loginformEvent):void-执行过程⑦

 

           {

              if ((evt.name=="zhangsan") && (evt.password=="123")){

                  Alert.show("你已经成功登录!","提示");

              } 

              else

              {

                  Alert.show("输入信息有误!","提示");

              }

                         

           }

           

//下文的    loginEvent="login(event)"类似于以前例子中调用init()函数,然后触发

//     init(){

//            loginform.addEventListener("loginEven",login);

//         }

       ]]>

    </mx:Script>

    

    <ns1:LoginForm x="70.5" y="29" id="loginform" loginEvent="login(event)"> -执行过程⑥

 

    </ns1:LoginForm>

    

</mx:Application>

 

3、loginformEvent.as

package com.events

{

    import flash.events.Event;

 

    public class loginformEvent extends Event

    {

       public var name:String="";

       public var password:String="";

       

       public function loginformEvent(type:String) -执行过程⑤

 

       {

           super(type, false, false);

       }

       

    }

}

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics