<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalAlign="middle" creationComplete="initApp()">
<mx:states>
<mx:State name="index">
<mx:RemoveChild target="{panel1}"/>
<mx:AddChild position="lastChild">
<mx:Label text="欢迎来到主页" fontFamily="Georgia" fontSize="15" color="#EAC248"/>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:Panel x="109" y="53" width="250" height="200" layout="absolute" id="panel1" title="用户登陆" fontFamily="Georgia" fontSize="12" color="#2A7383">
<mx:Label x="23" y="12" text="用户名"/>
<mx:Label x="23" y="45" text="密 码"/>
<mx:TextInput x="72" y="10" width="148" id="txtUsername" themeColor="#F7F9FB"/>
<mx:TextInput x="72" y="43" width="148" id="txtPassword" displayAsPassword="true" themeColor="#FBFBFB"/>
<mx:Button x="89" y="122" label="登陆" id="btnLogin" click="loginHandle()"/>
<mx:Button x="149" y="122" label="重置" id="btnReset" click="resetHandle()"/>
<mx:Label x="23" y="87" text="较验码"/>
<mx:TextInput x="72" y="85" width="46" id="txtCheckCode" themeColor="#FAFBFB"/>
<mx:Text x="129" y="87" width="39" id="lblCheckCode"/>
<mx:Label x="165" y="87" text="看不清楚?" click="initApp()"/>
</mx:Panel>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private function loginHandle():void{//登陆
if(txtUsername.text==""||txtPassword.text==""){
Alert.show("请输入完整数据!");
}else{
if(txtUsername.text=="admin"&& txtPassword.text=="pass"
&& txtCheckCode.text.toLowerCase()==lblCheckCode.text.toLowerCase()){
Alert.show("登陆成功!");
currentState="index"; //登陆成功后跳转到index state ,其实没有跳转,只是delete了 panel1
}
else{
if(txtCheckCode.text.toLowerCase()!=lblCheckCode.text.toLowerCase()){
Alert.show("较验码错误");
lblCheckCode.text=GenerateCheckCode();
}else
Alert.show("用户名或密码错误!");
}
}
}
private function resetHandle():void{//重置
txtUsername.text="";
txtPassword.text="";
}
private function GenerateCheckCode():String{//生成随机码
var ran:Number;
var number:Number;
var code:String;
var checkCode:String="";
for(var i:int=0;i<4;i++){
ran=Math.random();
number=Math.round(ran*10000);
if(number%2==0){
code=String.fromCharCode(48+(number%10));
}else{
code=String.fromCharCode(65+(number%26));
}
checkCode+=code;
}
return checkCode;
}
private function initApp():void{
lblCheckCode.text=GenerateCheckCode();
}
]]>
</mx:Script>
</mx:Application>
用户登陆 的一个flex实例
