在Flex 程序中,引入了状态设计的概念。在一个程序中,按照功能的需求,将界面切分成相对独立的部分。运行过程中,随着用户交互,界面在各个部分之间切换。比如在购物车程序中,登录界面、选购商品界面、购物车界面、付款界面,这些部分代表着不同的功能,显示当前程序的运行状态,每个界面便是一个状态(Status)。       在State对象中可以使用以下的方法:

setProperty:设置对象的属性

setStyle:设置对象的样式

setEventHandler:设置对象某一事件的监听方法

removeChild:删除一个子级元素

transition:设置状态的过渡动画效果

addChild:向对象添加一个子级元素 <?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300">     <mx:Script>         <![CDATA[             import mx.events.CloseEvent;             import mx.controls.Alert;             private function clickHandler(event:Event):void{                 Alert.show("Do you want to save your changes?","Save Changes",3,this,alertClickHandler);             }             private function alertClickHandler(event:CloseEvent):void{                 if(event.detail==Alert.YES){                     label1.text="Please Login!";                     currentState="";                 }else{                     currentState='Register';                 }             }         ]]>     </mx:Script>         <mx:states>         <mx:State name="Register">             <mx:AddChild relativeTo="{loginForm}" position="lastChild">//addChild:向对象添加一个子级元素 lastChild表示在最后位置添加                 <mx:target>                     <mx:FormItem id="confirm" label="Confirm:">                         <mx:TextInput/>                     </mx:FormItem>                 </mx:target>             </mx:AddChild>             <mx:AddChild relativeTo="{loginForm}" position="lastChild">                 <mx:target>                     <mx:FormItem id="email" label="Email:">                         <mx:TextInput id="emailId"/>                     </mx:FormItem>                 </mx:target>             </mx:AddChild>             <mx:SetProperty target="{loginPanel}" name="title" value="Register"/>//设置id为loginPanel的Panel对象的title属性的值为Register             <mx:SetProperty target="{loginButton}" name="label" value="Register"/>             <mx:SetEventHandler target="{loginButton}" name="click" handlerFunction="clickHandler"/>//设置对象某一事件的监听方法             <mx:SetStyle target="{loginButton}" name="color" value="blue"/>//设置对象的样式             <mx:RemoveChild target="{registerLink}"/>删除一个子级元素             <mx:AddChild relativeTo="{spacer1}" position="before">//添加子元素在space1前面                 <mx:target>                     <mx:LinkButton id="loginLink" label="Return to login" click="currentState=''"/>                 </mx:target>             </mx:AddChild>         </mx:State>     </mx:states>     <mx:Panel title="Login" id="loginPanel" horizontalScrollPolicy="off" verticalScrollPolicy="off" paddingTop="10" paddingBottom="10"          paddingLeft="10" paddingRight="10">         <mx:Text width="100%" color="blue" id="label1" text="Click the 'Need to Register?'"/>         <mx:Form id="loginForm">             <mx:FormItem label="Username:">                 <mx:TextInput/>             </mx:FormItem>             <mx:FormItem label="Password:">                 <mx:TextInput/>             </mx:FormItem>         </mx:Form>         <mx:ControlBar>             <mx:LinkButton id="registerLink" label="Need to Register?" click="currentState='Register'"/>             <mx:Spacer width="100%" id="spacer1"/>             <mx:Button label="Login" id="loginButton"/>         </mx:ControlBar>     </mx:Panel>  </mx:Module>

Flex State的更多相关文章

  1. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十一)路径导航模块

    config.xml文件的配置如下: <widget label="路径导航" icon="assets/images/lujingdaohang.png" ...

  2. FLEX的动画

    1.使用自带效果 在Flex里面不像在Flash里面随意制作动画了,Flex更趋向于应用程序,而不是动画制作了,所以没有了时间轴的概念.在Flex中使用动画效果,可以用Flex自带的Effect,或者 ...

  3. Flex 列表控件中的操作

    主要操作包括:显示提示,使用图标,编辑列表条目中数据. 1.使用数据提示: 当鼠标停留在条目上时,可以显示该条目的相关数据提示. 当利用滚动条时,可以显示滚动条的相关提示. 在列表控件中使用showD ...

  4. Flex 三态复选框

    在周末挤出了一点时间,写了一个三态复选框的组件,单独使用没有价值,不过集成到树之中可以很好的实现三态树,今天上午便把三态树组件也完成了,Flex自定义组件基本无所不能,此组件基于最新的Flex4.6( ...

  5. flex 4 transition

    <s:transitions> <s:Transition fromState="default"> <s:Parallel> <mx:R ...

  6. flex 4 布局样式

    Flex 4 样式与布局 第一篇 Flex 4 与自定义布局(Layout) Flex 4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身.您需要做的就是定义一个自定义布局. ...

  7. 深入了解 Oracle Flex ASM 及其优点

    简介 Oracle Real Application Cluster (RAC) 是 Oracle 解决方案中的一个著名产品,用于保持业务数据的高可用性.Oracle RAC 允许在所有集群节点之间共 ...

  8. Flex里的命名空间,fx、mx、s【转】

    Flex 4带给我们的,是全新的命名空间.了解这些命名空间必定是一件好事情.Flex 4有三个非常重要的命名空间,分别是: xmlns:fx=”http://ns.adobe.com/mxml/200 ...

  9. Flex 舞台背景渐变

    <?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="htt ...

随机推荐

  1. Linux下Tomcat开机自动启动

    linux下tomcat开机自动启动有两种方法,一种是简单,一种是复杂而又专业的,使用shell脚本要实现,我们一般推荐shell脚本启动方式.下面我们分别介绍这两种方法. 1.shell脚本启动 众 ...

  2. Invalidate()(转)

    原文转自 http://m.blog.csdn.net/blog/piaopiaopiaopiaopiao/41521211 使用Invalidate(TRUE)函数时,它会向消息队列中添加了WM_E ...

  3. android ARM 汇编学习—— 在 android 设备上编译c/cpp代码并用objdump/readelf等工具分析

    学习 android 逆向分析过程中,需要学习 Arm 指令,不可避免要编写一些 test code 并分析其指令,这是这篇文档的背景. 在目前 android 提供的开发环境里,如果要编写 c / ...

  4. Linux 的源码安装工具 CheckInstall

    Linux 的源码安装工具 CheckInstall Checkinstall 是一个能从 tar.gz 类的 https://www.ibm.com/developerworks/cn/linux/ ...

  5. (转)Oracle中判断某字段不为空及为空的SQL语句

    比如 insert into table a (a1,b1)values("a1",''); 对于这种情况,因为表里存的是'',其实是没有内容的,要查询这个字段,不能直接使用 se ...

  6. codevs 1018 [noip 2000 提高] 单词接龙

    题目链接:http://codevs.cn/problem/1018/ 题目描述 Description 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母, ...

  7. spring 声明式事务中try catch捕获异常

    原文:http://heroliuxun.iteye.com/blog/848122 今天遇到了一个这个问题 最近遇到这样的问题,使用spring时,在业务层需要捕获异常(特殊需要),当前一般情况下不 ...

  8. onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法(设置readonly后onchange不起作用的解决方案)

    转自:https://www.cnblogs.com/white0710/p/7338456.html 1. onchange事件监听input值变化的使用方法: <input id=" ...

  9. jQuery点击自身以外地方关闭弹出层

    转载自:http://blog.163.com/abkiss@126/blog/static/325941002012111754349590/ 主要功能是点击显示,然后通过点击页面的任意位置都能关闭 ...

  10. [ Openstack ] OpenStack-Mitaka 高可用之 镜像服务(glance)

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...