`

简单Flex示例_登录

阅读更多

<?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>
该示例中包含生成验证码、设置控件的焦点、改变页面的状态(给用户的感觉就是更换页面)。个人认为更换页面的做法上比较麻烦:更换页面的内容需要手写代码;也使页面的代码量变大。不知道有没有其他的写法,搜集中...

分享到:
评论
3 楼 Flighting_Chou 2009-02-19  
czwlucky 写道
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:states>
<mx:State name="OK">
<mx:RemoveChild target="{btn}"/>
</mx:State>
</mx:states>
<mx:Script>
<![CDATA[
private function todo():void {
currentState = "OK";
}
]]>
</mx:Script>
<mx:Panel id="p1" width="250" height="200" title="测试State" resizeEffect="Resize" horizontalCenter="0" verticalCenter="-2" >
<mx:Button id="btn" click="todo();">
<mx:label>点我</mx:label>
</mx:Button>
</mx:Panel>
</mx:Application>
就是这段代码

测试过你的那段代码没有问题,加了<mx:AddChild>也可以的,代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:states>
<mx:State name="OK">
<mx:RemoveChild target="{btn}"/>
<mx:AddChild >
<mx:Label text="Hello" color="red" fontSize="20"/>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:Script>
<![CDATA[
private function todo():void {
currentState = "OK";
}
]]>
</mx:Script>
<mx:Panel id="p1" width="250" height="200" title="测试State" resizeEffect="Resize" horizontalCenter="0" verticalCenter="-2" >
<mx:Button id="btn" click="todo();">
<mx:label>点我</mx:label>
</mx:Button>
</mx:Panel>
</mx:Application>
自己再试试吧
2 楼 czwlucky 2009-02-19  
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:states>
<mx:State name="OK">
<mx:RemoveChild target="{btn}"/>
</mx:State>
</mx:states>
<mx:Script>
<![CDATA[
private function todo():void {
currentState = "OK";
}
]]>
</mx:Script>
<mx:Panel id="p1" width="250" height="200" title="测试State" resizeEffect="Resize" horizontalCenter="0" verticalCenter="-2" >
<mx:Button id="btn" click="todo();">
<mx:label>点我</mx:label>
</mx:Button>
</mx:Panel>
</mx:Application>
就是这段代码
1 楼 czwlucky 2009-02-19  
Severity and Description Path Resource Location Creation Time Id
找不到类型,或者它不是编译时常数: states。 [Generated code (use -keep to save): Path: states-generated.as, Line: 230, Column: 14] traning Unknown 1235013343953 2106

我只要在<mx:State>中写上东西,无论是<mx:AddChild>还是<mx:SetProperty>都会报错!不知道什么原因。。。

相关推荐

    FlexModule_j2ee.zip

    7. **测试用例或示例代码**:可能有JSP页面或简单的HTTP请求工具(如cURL脚本)用于测试Flex与J2EE的交互。 通过学习和分析FlexModule_j2ee.zip的内容,开发者可以了解到如何将Flex的灵活性和互动性与JSP和J2EE的...

    flex教程first_flexapp_tutorial1.

    通过本教程的学习,你将能够熟练地创建和运行一个简单的Flex应用程序,为后续更深入的Flex开发打下坚实的基础。记得实践是提高技能的关键,所以动手尝试每个步骤,遇到问题不要害怕,因为解决问题正是学习的一部分。...

    Flex_LCDS_Java.rar_flex_flex java

    7. **示例应用**:通过实际的案例,例如创建一个简单的CRUD(创建、读取、更新、删除)应用程序,来巩固所学知识。 压缩包中的“Flex.pdf”可能是这个入门教程的电子版,包含了上述所有内容的详细讲解和实例代码。...

    Flex from_validator_表单验证

    本教程将详细讲解"Flex from_validator_表单验证"的相关知识点,帮助你理解和掌握表单验证的基本流程和处理方法。 一、表单验证简介 表单验证主要在用户填写并提交表单时进行,通过验证用户的输入,防止无效数据或...

    Flex教程_ppt+pdf

    另一份可能是PPT格式的演示文稿,可能包含示例代码和互动演示,帮助学习者更好地理解和掌握Flex开发。 综上所述,Flex教程_ppt+pdf.zip提供的资料涵盖了Flex的基础到进阶内容,对于初学者和有经验的开发者来说都是...

    Baidu-Mobile-Flex.rar_flex_flex mobile

    测试示例可能是一个简单的应用,用于演示如何在移动设备上集成和使用百度地图的Flex API,帮助开发者快速理解和上手。 **标签解析:** "flex" 和 "flex_mobile" 标签进一步强调了这个资源是与Flex技术及其在移动...

    Flex_LCDS_Java.rar_flex

    6. **实例演示**:提供一个简单的Flex应用与Java服务端通信的示例,可能包括用户登录、数据查询和更新等功能。 7. **错误处理和调试**:如何处理Flex与Java之间的通信错误,以及在开发过程中使用Flex Builder或IDE...

    Lex@yacc.rar_LEX_flex_lex/flex_yacc_yacc flex

    6. 实例分析:通过一个简单的编程语言或脚本语言的词法规则示例,展示如何使用flex进行实际操作。 文件"Lex@yacc.txt"可能是对上述内容的详细阐述,而"www.pudn.com.txt"可能是从网络资源网站pudn.com下载的补充...

    bison_flex_1:非常基本的野牛和flex示例

    非常基本的野牛和flex示例 2020_1:简单的lex示例(C) 2020_1.5:简单的lex + yacc示例(C) 2020_2:简单的lex + yacc计算器(C) goyacc1:简单的goyacc示例(Go) goyacc2:简单的goyacc example2(Go) ...

    flex企业开发前端框架FLEX_FEAF.rar

    搜集整合网上流行的开源组件,为我所用,从而提供了企业级应用所涉及的一系列组件封装和示例,只需简单的CV 没有什么复杂的模式,简单易学易用 发布版本:V0.01 发布日期:2010-11-11 技术支持:www.feaf.cn ...

    Login-System.zip_ac_oetags.js_flex_flex login

    在本压缩包“Login-System.zip”中,包含了一个名为“ac...通过这个简单的示例,开发者可以学习到如何使用Flex构建交互式界面,以及如何通过JavaScript库收集用户行为数据,这对于提升用户体验和业务洞察具有重要意义。

    flex_cairngorm_Mvc_HelloWorld

    标题“flex_cairngorm_Mvc_HelloWorld”暗示了我们正在探讨的是一个关于Adobe Flex与Cairngorm框架的简单MVC(Model-View-Controller)应用示例。Flex是一种用于构建富互联网应用程序(RIA)的开源框架,而Cairngorm...

    flex_特效_源码_6种特效

    至于"flex特效整合"这个压缩包,它很可能包含了6种不同的Flex特效示例。这些示例可能涵盖以下几种常见特效: 1. **滑动/滚动效果**:在列表或容器中平滑地移动内容,常用于轮播图或导航菜单。 2. **淡入淡出效果**...

    flex_gifplayer使用实例

    在本文中,我们将深入探讨如何使用Flex_GifPlayer以及它的工作原理,同时提供一个实际的使用示例。 首先,我们需要了解Flex和AS3的基础知识。Flex是用于构建富互联网应用程序(RIA)的开源框架,它基于MXML和...

    Flex_4_Fun

    1. **基本图形元素**:介绍了Flex 4中如何绘制简单的图形元素,如线条、矩形、圆等。 2. **复杂图形构建**:讲解了如何组合基本图形元素来构建更复杂的图形结构,如图表、图标等。 3. **动态图形**:讨论了如何通过...

    ArcGIS_Server_9_3_for_Flex_API_初级教程.pdf

    创建一个简单的地图查看器应用程序,加载来自ArcGIS Online的地图服务。示例代码如下: ```xml xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:esri="http://www.esri.com/2008/ags" pageTitle="Using ...

    cifafenxiqi(LEX).rar_ cifafenxiqi_Flex 虚拟仿真实_LEX_flex_词法分析器

    在这个项目中,"www.pudn.com.txt"可能是一个文档,包含有关项目背景、说明或示例输入的信息,而"词法分析器的实现(LEX)"很可能是Flex的源代码文件,定义了PL/0语言的词法规则。例如,词法规则可能包括以下部分: 1...

    FLEX _HTTPService的调用方法

    _HTTPService组件是Flex框架中非常重要的组成部分,它为开发者提供了简单易用的方式来与Web服务进行交互。通过上述两个示例,我们不仅了解了_HTTPService的基本使用方法,还学会了如何处理响应结果并将其展示在用户...

Global site tag (gtag.js) - Google Analytics