在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. MyEclipse中代码提醒功能

    一:最近仔细研究了下spring mvc中的代码,自己在配置文件哪里来时出现问题,没有提醒,只好自己搜了下有关的信息.如下 window--->preferences---->java-- ...

  2. C++ 智能指针的简单实现

    智能指针的用处:在c++中,使用普通指针容易造成堆内存的泄露问题,即程序员会忘记释放,以及二次释放,程序发生异常时内存泄漏等问题,而使用智能指针可以更好的管理堆内存.注意,在这里智能指针是一个类而非真 ...

  3. Matlab xpC启动盘

    要点: 1.target PC的网卡支持类型有限: 2.网上所列教程未必适用于本地,仅以两图表示: a,带有图形界面时容易出错: b,启动选项为Removable Device:

  4. MDK stm32 仿真

    直接选择simulator,仿真时报错 *** error 65: access violation at 0x40021000 : no 'read' permission 修改系统配置,原配置如下 ...

  5. mongodb安全

    1.流程: (1)创建超级管理员 (2)修改配置文件,验证身份登录 (3)重启服务 (4)使用超级管理员登录 (5)创建普通用户 (6)使用普通用户登录对应的数据库 mongodb数据库角色: 1创建 ...

  6. mongodb的数据库操作

    1.创建数据库 语法 MongoDB 创建数据库的语法格式如下: use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. 1.创建数据库 > show dbs ...

  7. ios iphone ipad上iframe的宽度会扩大的解决办法

    这个问题,我从网上查了下,好像是属于ios的bug,android,windows都没有问题. 解决办法,就是在iframe加载完成后,设置 iframe里面body的宽度为多少PX. $(" ...

  8. 我的一次安装oracle的过程

    1.在装oracle之前,先安装.net3.5 2.然后正常安装oracle,一直next 3.装完oracle后,安装plsql dev工具,打开工具,发现没有connect as,是需要进行一些配 ...

  9. DRF的过滤与排序

    过滤 对于列表数据可能需要根据字段进行过滤,我们可以通过添加 django-filter 扩展来增强支持. pip install django-filter 在配置文件中增加过滤后端的设置: INS ...

  10. 第一篇:Hello World

    Hello World RabbitMQ是一个消息代理:它接受和转发消息.你可以把它想象成一个邮局:当你把邮件放在邮箱里时,你可以确定邮差先生最终会把邮件发送给你的收件人.在这个比喻中,RabbitM ...