LoginFormEvent.as 自定义事件
package com.events
{
    
import flash.events.Event;

    
public class LoginFormEvent extends Event
    {
        
        
public var loginName:String = "";
        
public var loginPassword:String = "";
        
public function LoginFormEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
        {
            
super(type, bubbles, cancelable);
        }
        
    }
}



1 使用源元素的方式给整个表单加一个事件:
<mx:Metadata>
        [Event(name = "loginEvent",type = "com.events.LoginFormEvent")]
</mx:Metadata>

2 给button注册onClick事件

<mx:Button x="132" y="139" label="登录" fontSize="12" width="103" click="onClick(event)"/>
3 发出事件
internal function onClick(evt:MouseEvent):void{
                var ev:LoginFormEvent = new LoginFormEvent("loginEvent");
                ev.loginName = login_name.text;
                ev.loginPassword = login_password.text;
                dispatchEvent(ev);

4 给应用程序注册LoginFormEvent事件,事件响应函数为login
<ns1:loginPanel id="loginForm" loginEvent="login(event)" horizontalAlign="center" verticalAlign="middle">
</ns1:loginPanel>
5 书写login函数,完成登录验证
internal function login(evt:LoginFormEvent):void{
                if((evt.loginName=="test") && (evt.loginPassword=="123")){
                Alert.show("登录成功","提示");
                }
                else Alert.show("登录失败","提示");
            }


自定义的Panel组件:即表单
loginPanel.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="244" borderColor="#10CAE0" title="用户登录" fontSize="12">
    
    
<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 ev:LoginFormEvent = new LoginFormEvent("loginEvent");
                ev.loginName = login_name.text;
                ev.loginPassword = login_password.text;
                dispatchEvent(ev);
            }
        
]]>
    
</mx:Script>
    
    
<mx:Label x="71" y="34" text="用户名:" fontSize="12"/>
    
<mx:Label x="71" y="90" text="密码:" fontSize="12"/>
    
<mx:TextInput x="132" y="34" id="login_name"/>
    
<mx:TextInput x="132" y="90" id="login_password" displayAsPassword="true"/>
    
<mx:Button x="132" y="139" label="登录" fontSize="12" width="103" click="onClick(event)"/>
    
</mx:Panel>

主页面:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:ns1="*" creationComplete="init()">
    
<mx:Script>
        
<![CDATA[
            import mx.controls.Alert;
            import com.events.LoginFormEvent;
            internal function login(evt:LoginFormEvent):void{
                if((evt.loginName=="test") && (evt.loginPassword=="123")){
                Alert.show("登录成功","提示");
                }
                else Alert.show("登录失败","提示");
            }
        
]]>
        
    
</mx:Script>
    
    
<ns1:loginPanel id="loginForm" loginEvent="login(event)" horizontalAlign="center" verticalAlign="middle">
    
    
</ns1:loginPanel>
  
</mx:Application>

posted on 2010-03-03 21:35 Ying-er 阅读(634) 评论(0)  编辑  收藏 所属分类: Flex3.0