参考了:http://hi.baidu.com/chongshe/item/cb0976b7cde4c17e254b09bc之后,发现把登录框独立成Group组件之后,无法触发事件.下面贴下我的全部代码:
1.LoginEvent.as
package {
import flash.events.Event;
public class LoginEvent extends Event {
public static const USER_LOGIN : String = "userLogin";
private var resMsg : String;
public function LoginEvent(type:String, resMsg:String, bubbles:Boolean=false, cancelable:Boolean=false) {
super(type, bubbles, cancelable);
this.resMsg = resMsg;
}
public function getResMsg() : String {
return resMsg;
}
override public function clone() : Event {
return new LoginEvent(type, resMsg);
}
}
}
2.Login.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
protected function btnLogin_clickHandler(event:MouseEvent) : void {
if (true) { // 这里可以检验登录 : tiUserName.text='用户名' && tiPassWord="密码"
var evt:LoginEvent=new LoginEvent(LoginEvent.USER_LOGIN, "登录成功");
parentApplication.dispatchEvent(evt);
}
}
]]>
</fx:Script>
<s:Panel title="用户入口">
<s:Form>
<s:FormItem label="用户名:" width="100%">
<s:TextInput id="tiUserName" />
</s:FormItem>
<s:FormItem label="密码:" width="100%">
<s:TextInput id="tiPassWord" />
</s:FormItem>
<s:FormItem width="100%">
<s:layout>
<s:HorizontalLayout horizontalAlign="center"/>
</s:layout>
<s:Button id="btnLogin" width="70" height="25" label="按钮" click="btnLogin_clickHandler(event)"
horizontalCenter="0" verticalCenter="0"/>
</s:FormItem>
</s:Form>
</s:Panel>
</s:Group>
3.MainApp.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"
xmlns:view="*"
creationComplete="app_creationCompleteHandler()">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
protected function app_creationCompleteHandler():void {
this.addEventListener(LoginEvent.USER_LOGIN, userLoginHandler);
}
private function userLoginHandler(e:LoginEvent):void{
trace(e.getResMsg());
Alert.show(e.getResMsg(),"提示");
}
]]>
</fx:Script>
<view:Login verticalCenter="0" horizontalCenter="0" />
</s:Application>

1284

被折叠的 条评论
为什么被折叠?



