Flex 4 将状态功能升级为一个全面的 MXML 语言功能。因此,您可能会发现状态更灵活、更直接。新的状态语法内联程度更高,允许在上下文中指定状态特定变化。以下是 Flex 4 语法中的主要区别:
- 只有状态是在状态阵列中定义的。
- 在新的状态语法中,不能使用
AddChild
和 RemoveChild
。您必须使用 includeIn
和excludeFrom
属性在组件上定义组件在特定状态中的角色。
在以下 Flex 3 示例中,仅当文档的 currentState
为 submitState
时,才使用状态包含一个 Button 并删除一个 TextInput。对于较复杂的状态,这种方法可以做到十分详细。
<mx:states>
<mx:State name="submitState" basedOn="">
<mx:AddChild relativeTo="{loginForm}" >
<mx:Button label="submit" bottom="10" right="10"/>
</mx:AddChild>
<mx:RemoveChild target="{firstTextInput}"/>
</mx:State>
</mx:states>
<mx:TextInput id="firstTextInput" />
<mx:Canvas id="loginForm" />
以下是一段使用 includeIn
和 excludeFrom
、更简单的 Flex 4 代码。
<s:states>
<s:State name="submitState" />
</s:states>
<s:TextInput id="firstTextInput" excludeFrom="submitState" />
<s:Group id="loginForm" >
<s:Button label="submit" bottom="10" right="10" includeIn="submitState"/>
</s:Group>
SetProperty
、SetStyle
和 SetEventHandler
已替换为新的点语法,它允许您限定具备特定状态标识符的 MXML 属性值。
在以下 Flex 3 示例中,代码为 submitState
中的一个 Button 定义了属性、样式和事件。
<mx:states>
<mx:State name="submitState" basedOn="">
<mx:SetProperty target="{submitButton}" name="label" value="submit" />
<mx:SetStyle target="{submitButton}" name="textDecoration" value="underline"/>
<mx:SetEventHandler target="{submitButton}" name="click" handler="trace('done');"/>
</mx:State>
<mx:State name="clearState" basedOn="">
<mx:SetProperty target="{submitButton}" name="label" value="clear" />
<mx:SetEventHandler target="{submitButton}" name="click" handler="emptyDocument()" />
</mx:State>
</mx:states>
<mx:Button id="submitButton" />
在 Flex 4 中,代码如下:
<s:states>
<s:State name="submitState" />
<s:State name="clearState" />
</s:states>
<s:Button label.submitState="submit" textDecoration.submitState="underline"
click.submitState="trace('done')" click.clearState="emptyDocument()"
label.clearState="clear" textDecoration.clearState="none"/>
- 组件不能再处于未定义状态或空状态。默认情况下,声明的第一个状态是组件的初始状态。
当文档使用 MXML 2009 语言命名空间时,可以使用新语法。可以混合使用旧版语法和新版状态语法。只有 MXML 2006 命名空间中可以使用旧版语法。
此外,各个组件现在支持外观类中定义的一组状态,这使得根据组件状态应用可视变化更加简单。例如,如果查看 Spark Button 的外观,您会发现已定义以下状态:
<s:states>
<s:State name="up" />
<s:State name="over" />
<s:State name="down" />
<s:State name="disabled" />
</s:states>
ButtonSkin 类定义了各个状态中 Spark Button 在可视方面的变化。
以上只是简要介绍了新的 Flex 4 beta 状态语法。有关更多详细信息,请参阅增强的状态文档*。
分享到:
相关推荐
Flex是广泛应用于解析和编译领域的一个开源工具,主要用于生成词法分析器(lexer),它能够自动识别输入源代码中的模式并将其转换为相应的符号。标题提到的是Flex 2.5.2版本,这是一个特定的历史版本,可能包含了该...
4. **States和Transitions**:Flex4中的States和Transitions机制允许开发者轻松管理UI的不同状态,比如在不同视图之间切换,以及添加平滑的动画效果,提高用户体验。 5. **数据绑定**:Flex4的数据绑定功能使得UI...
1. **Adobe Catalyst集成**:Flex 4与Adobe Catalyst的结合允许设计师和开发者更加高效地协同工作。Catalyst是一款无需编码的设计工具,它理解开发者和设计师的工作流程差异,使得双方能够专注于各自的专业领域。...
Flex教程系列之(一) AS3语法——编程基础 http://download.csdn.net/source/1161756 Flex教程系列之(二) AS3语法——流程控制语句 http://download.csdn.net/source/1161804 Flex教程系列之(三) AS3语法——控制...
### Flex4之语法入门知识点详解 #### 一、Flex概览及重要性 **Flex** 是 Adobe 公司推出的一款用于开发和部署 **富互联网应用程序(RIAs)** 的工具和技术集合。RIAs 提供了相较于传统 HTML 应用更为丰富的用户体验...
flex4视频教程之语法基础,教程讲的比较详细,帮助初学者很有好处!
Flex和Bison是两个在编译原理领域广泛应用的开源工具,它们主要用于自动生成词法分析器(lexer)和语法分析器(parser)。本教程将详细讲解如何使用这两个工具来构建一个简单的编译程序。 Flex(以前称为lex)是一...
这种数据交互能力使得Flex3D不仅限于展示,还能动态地更新和响应来自服务器的数据,例如在网络拓扑图中实时显示设备状态变化。 在文件名“Flex3d动画引擎_效果展示”中,我们可以推断出这是一个关于Flex3D动画引擎...
flex -MXML语法,介绍flex 的 mxml的基本语法构成,适合一般学习者使用
- **Flex与Java通信**:通过BlazeDS实现Flex前端与Java后端之间的实时数据交换。 - **BlazeDS**:一款开源服务器,用于连接Flex客户端与Java服务器。 - **远程对象**:用于在客户端和服务器之间传递数据的对象。 ...
- **AMF简介**:AMF(Action Message Format)是一种用于Flex与服务器之间传输数据的二进制格式。 - **优势分析**:比较AMF与其他数据交换格式的优缺点。 #### 26. Demo12:FLEX和Spring整合 - **Spring框架介绍**...
关于flex的教程,目前flex教材比较少,教材更是更少了
Flex和Bison是两款在软件开发领域中广泛使用的开源工具,尤其在编译器和解释器的构造过程中扮演着重要角色。本安装包包含了这两个工具的安装程序,为QGIS(一个开源地理信息系统)的编译提供必要的组件。 Flex,...
《Windows下词法分析分析器Flex和语法分析器Bison的使用详解》 在计算机科学领域,词法分析和语法分析是编译器设计的重要环节。Flex和Bison是两个强大的开源工具,分别用于词法分析和语法分析,尤其在Windows环境下...
在本文中,我们将深入探讨Flex学习过程中的基础语法,特别是从AS2到AS3的变化。 首先,ActionScript 3(AS3)是AS的一个重大升级,它引入了完全的面向对象编程(OOP)概念。这意味着AS3具有类、继承、封装和多态性...
这个“Flex4视频教程_01-02AS语法基础.rar”文件是一个压缩包,包含了初学者学习Flex4开发所必需的基础知识,特别是关于ActionScript 3.0的语法。 ActionScript 3.0是Flash平台的核心编程语言,相较于之前的版本,...
- **基础教程**:了解Flex4的基本语法和组件使用,如MXML元素、ActionScript类和Spark组件。 - **高级主题**:深入研究数据绑定、事件处理、动画效果、服务调用等高级特性。 - **最佳实践**:学习如何优化性能、...
3. **事件处理**:在Flex中,事件是用户交互和组件之间通信的主要方式。学习如何注册事件监听器,处理不同类型的事件,如鼠标点击、键盘输入等。 4. **MXML**:MXML是Flex的标记语言,用于声明式地构建用户界面。...