LoginEvent.as
package events
{
    import flash.events.Event;
    import datas.UserInfo;

    public class LoginEvent extends Event
    {
        public 
function LoginEvent(user:UserInfo,type:String){
            super(type);
            
this.user = user;
        }
        public 
var user:UserInfo;        
    }
}

UserInfo.as
package datas
{
    public class UserInfo
    {
        public 
var name:String;
        public 
var password:String;
    }
}

LoginControl.mxml
Flex 自定义事件2<?xml version="1.0" encoding="utf-8"?>
Flex 自定义事件2
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="290" height="132">
Flex 自定义事件2
<mx:Metadata>
Flex 自定义事件2    [Event(name="login",type="events.LoginEvent")]
Flex 自定义事件2
</mx:Metadata>
Flex 自定义事件2
<mx:Script>
Flex 自定义事件2    
<![CDATA[
Flex 自定义事件2        import datas.UserInfo;
Flex 自定义事件2        import events.LoginEvent;
Flex 自定义事件2        public function login():void
Flex 自定义事件2        {
Flex 自定义事件2            var user:UserInfo = new UserInfo();
Flex 自定义事件2            user.name = this.txtUser.text;
Flex 自定义事件2            user.password = this.txtPassword.text;
Flex 自定义事件2            
Flex 自定义事件2            var event:LoginEvent = new LoginEvent(user,"login");
Flex 自定义事件2            this.dispatchEvent(event);
Flex 自定义事件2        }
Flex 自定义事件2    
]]>
Flex 自定义事件2
</mx:Script>
Flex 自定义事件2    
<mx:Button x="224" y="100" label="Login" click="login()"/>
Flex 自定义事件2    
<mx:Form x="10" y="10" width="270">
Flex 自定义事件2        
<mx:FormItem label="User Name:" required="true">
Flex 自定义事件2            
<mx:TextInput maxChars="10" id="txtUser"/>
Flex 自定义事件2        
</mx:FormItem>
Flex 自定义事件2        
<mx:FormItem label="Password:" required="true">
Flex 自定义事件2            
<mx:TextInput displayAsPassword="true" maxChars="8" id="txtPassword"/>
Flex 自定义事件2        
</mx:FormItem>
Flex 自定义事件2    
</mx:Form>
Flex 自定义事件2    
Flex 自定义事件2
</mx:Canvas>

EventTest.mxml
Flex 自定义事件2<?xml version="1.0" encoding="utf-8"?>
Flex 自定义事件2
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*" width="360" height="185">
Flex 自定义事件2
<mx:Script>
Flex 自定义事件2    
<![CDATA[
Flex 自定义事件2        import mx.controls.Alert;
Flex 自定义事件2        import datas.UserInfo;
Flex 自定义事件2        import events.LoginEvent;
Flex 自定义事件2        
Flex 自定义事件2        private function loginHandler(event:LoginEvent):void{
Flex 自定义事件2            mx.controls.Alert.show(event.user.name +" log in.");
Flex 自定义事件2            
Flex 自定义事件2        }
Flex 自定义事件2    
]]>
Flex 自定义事件2
</mx:Script>
Flex 自定义事件2    
<ns1:LoginControl x="27" y="24" login="loginHandler(event)" width="301" height="135">
Flex 自定义事件2    
</ns1:LoginControl>
Flex 自定义事件2    
Flex 自定义事件2
</mx:Application>
Flex 自定义事件2

Flex 自定义事件2

测试:

相关文章: