首先自定事件:
package com.event
{
import flash.events.Event;
public class mylogin extends Event
{
public var name:String=""; //存放用户名
public var pwd:String=""; //密码
public function mylogin(type:String)
{
super(type, false, false);
}
}
}
自定的控件中type类型有所变动;
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300" borderColor="#19A612" title="登陆表单">
<mx:Metadata>
[Event(name="LoginEvent",type="com.event.mylogin")] //增加元数据,注意没有;号,LoginEvent是事件名称,type是类型,类型变为com.event.mylogin;
</mx:Metadata>
<mx:Script>
<![CDATA[
import com.event.mylogin;
internal function onClick(evt:MouseEvent):void{
var e:mylogin=new mylogin("LoginEvent"); //new 的自定事件 mylogin
e.name=txtname.text;//事件中的name与pwd属性
e.pwd=txtpwd.text;
dispatchEvent(e); //发布事件 相当于this.dispatchEvent(new Event("LoginEvent"));
}
]]>
</mx:Script>
<mx:Label x="41" y="63" text="用户名"/>
<mx:Label x="41" y="131" text="密码"/>
<mx:TextInput x="110" y="61" id="txtname"/>
<mx:TextInput x="110" y="129" id="txtpwd" displayAsPassword="true"/>
<mx:Button x="110" y="174" label="登陆" id="btnlog" click="onClick(event)" width="63" height="29" fontSize="12" fontWeight="bold" fontFamily="Courier New"/>
</mx:Panel>
应用:
<?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 com.event.mylogin;
import mx.controls.Alert;
internal function login(evt:mylogin):void{ //login(evt:mylogin) 而不是evt:event
if(evt.name=='admin'&&evt.pwd=='000000')
{
Alert.show("你成功登陆了","提示信息");
}
else{
Alert.show("用户名密码错误","提示信息");
}
}
]]>
</mx:Script>
<ns1:LoginForm x="336" y="272" LoginEvent="login(event)">
</ns1:LoginForm>
</mx:Application>