<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
width="310" height="300" fontSize="12" creationComplete="initApp()" title="用户登录">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private function initApp():void
{
this.textCode.text = createCheckCode();
}
private function loginHandle():void
{
var username:String = this.txtUsername.text;
var password:String = this.txtPassword.text;
var inputcode:String = this.txtCode.text;
var code:String = this.textCode.text;
if(username=="")
{
Alert.show("用户名不能为空!");
}
if(password=="")
{
Alert.show("密码不能为空!");
}
if(username == "Admin" && password == "Pass" && inputcode.toLocaleLowerCase() == code.toLocaleLowerCase())
{
currentState="index"; //通过currentState改变状态,即更换界面
}
else
{
if(inputcode.toLocaleLowerCase() != code.toLocaleLowerCase())
{
//使控件获取焦点的写法
application.focusManager.setFocus(txtCode); //该花括号内的该行代码必须放在下一行的前面,否则没有该效果出现
Alert.show("验证码输入错误!");
}
else
{
Alert.show("用户名或密码错误!");
}
}
}
//create validate code
private function createCheckCode():String
{
//初始化
var ran:Number;
var number:Number;
var code:String;
var checkCode:String ="";
//生成四位随机数
for(var i:int=0; i<4; i++)
{
//Math.random生成数为类似为0.1234
ran=Math.random();
number =Math.round(ran*10000);
//如果是2的倍数生成一个数字
if(number % 2 == 0)
//"0"的ASCII码是48
code = String.fromCharCode(48+(number % 10));
//生成一个字母
else
//"A"的ASCII码为65
code = String.fromCharCode(65+(number % 26)) ;
checkCode += code;
}
return checkCode;
}
]]>
</mx:Script>
<!-- about state -->
<mx:states>
<mx:State name="index">
<!-- remove login panel -->
<mx:RemoveChild target="{pnlLogin}"/>
<mx:AddChild position="">
<mx:Label text="Welcome to your new home !" fontSize="13"/>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:Panel width="300" height="280" layout="absolute" id="pnlLogin" fontSize="13" horizontalAlign="center" verticalAlign="middle">
<mx:Label x="18" y="13" text="用户名" id="lblUsername"/>
<mx:Label x="18" y="58" text="密码" id="lblPassword"/>
<mx:Button x="71" y="150" label="登录" id="btnLogin" click="loginHandle()"/>
<mx:TextInput x="71" y="11" id="txtUsername"/>
<mx:TextInput x="71" y="58" id="txtPassword" displayAsPassword="true"/>
<mx:Button x="179" y="150" label="重置" id="btnReset"/>
<mx:Label x="18" y="107" text="校验码" id="lblCode"/>
<mx:TextInput x="71" y="105" id="txtCode" width="52"/>
<mx:LinkButton x="171" y="105" label="看不清?" id="lnkBtnCode" click="initApp()"/>
<mx:Text x="131" y="107" id="textCode"/>
</mx:Panel>
</mx:WindowedApplication>
该示例中包含生成验证码、设置控件的焦点、改变页面的状态(给用户的感觉就是更换页面)。个人认为更换页面的做法上比较麻烦:更换页面的内容需要手写代码;也使页面的代码量变大。不知道有没有其他的写法,搜集中...
分享到:
相关推荐
一个简单的spring,flex示例.描述了flex,spring协同工作的基本流程
非常基本的野牛和flex示例 2020_1:简单的lex示例(C) 2020_1.5:简单的lex + yacc示例(C) 2020_2:简单的lex + yacc计算器(C) goyacc1:简单的goyacc示例(Go) goyacc2:简单的goyacc example2(Go) ...
搜集整合网上流行的开源组件,为我所用,从而提供了企业级应用所涉及的一系列组件封装和示例,只需简单的CV 没有什么复杂的模式,简单易学易用 发布版本:V0.01 发布日期:2010-11-11 技术支持:www.feaf.cn ...
FLEX开发简单示例,基于单视窗,在简单登陆页面输入用户名,密码
用Flex、Eclipse和blazeds_turnkey实现Flex与Java的交互的相关配置和简单示例
flex的简单例子 <br> <br>
flex仪表盘的简单示例代码,刻度盘大小随设置变化而变化
很简单的一个flex与JS交互的例子, 直接在html-template文件夹下修改index.template.html文件实现此例.
creationComplete="service.send()" > <![CDATA[ import mx.controls.Alert; import mx.rpc.events.FaultEvent;... import mx.collections.ArrayCollection;... import mx.rpc.events.ResultEvent;...
Flex项呈示器自定义及使用实例,展示用户信息,包括头像及等级信息。与博客Flex之旅--项呈示器ItemRenderer对应
用flex和myeclipse整合开发 建立项目的详细过程
这是一个我根据Data Services提供的一个简单的关于datapush(一个客户端修改数据,修改立即被push到其他所有客户端)的小例子改的。我在原有的修改数据的基础上,增加了new和delete,而且用popup窗口实现。rar文件中...
Flex 表格的单元格合并的简单示例,易懂简单
flex+blazeds+java后台消息推送(简单示例)[借鉴].pdf
本示例使用自动工具,纯Flex扫描仪和带有位置的bison解析器(在本示例中仅显示行)。 输出是一棵简单的树,它使用单链接列表链接其元素。 还提供了用于树遍历的简单例程。 示例语法只是胡说八道: Names ::= {...
flex graph 简单示例 以后会渐渐完善 flex graph 简单示例 以后会渐渐完善
该存储库提供了简单的示例,通过无头JavaScript调用(express-flexjs)或包含在您的结帐页面中的完全可定制的托管字段/缩微格式(express-microform)演示了CyberSource Flex SDK的用法。 有关Secure ...