这篇文章将为大家详细讲解有关Flex4beta状态语法中的变化是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Flex4beta状态语法中的变化
Flex4beta将状态功能升级为一个全面的MXML语言功能。因此,您可能会发现状态更灵活、更直接。新的状态语法内联程度更高,允许在上下文中指定状态特定变化。以下是Flex4beta语法中的主要区别:
◆只有状态是在状态阵列中定义的。
◆在新的状态语法中,不能使用AddChild和RemoveChild。您必须使用includeIn和excludeFrom属性在组件上定义组件在特定状态中的角色。
在以下Flex3示例中,仅当文档的currentState为submitState时,才使用状态包含一个Button并删除一个TextInput。对于较复杂的状态,这种方法可以做到十分详细。
<mx:states> <mx:Statenamemx:Statename="submitState"basedOn=""> <mx:AddChildrelativeTomx:AddChildrelativeTo="{loginForm}"> <mx:Buttonlabelmx:Buttonlabel="submit"bottom="10"right="10"/> </mx:AddChild><mx:RemoveChildtargetmx:RemoveChildtarget="{firstTextInput}"/> </mx:State></mx:states <mx:TextInputidmx:TextInputid="firstTextInput"/> <mx:Canvasidmx:Canvasid="loginForm"/>
以下是一段使用includeIn和excludeFrom、更简单的Flex4beta代码。
<s:states> <s:Statenames:Statename="submitState"/> </s:states><s:TextInputids:TextInputid="firstTextInput"excludeFrom="submitState"/> <s:Groupids:Groupid="loginForm"> <s:Buttonlabels:Buttonlabel="submit"bottom="10"right="10"includeIn="submitState"/> </s:Group>
◆SetProperty、SetStyle和SetEventHandler已替换为新的点语法,它允许您限定具备特定状态标识符的MXML属性值。
在以下Flex3示例中,代码为submitState中的一个Button定义了属性、样式和事件。
<mx:states><mx:Statenamemx:Statename="submitState"basedOn=""> <mx:SetPropertytargetmx:SetPropertytarget="{submitButton}"name="label"value="submit"/> <mx:SetStyletargetmx:SetStyletarget="{submitButton}"name="textDecoration"value="underline"/> <mx:SetEventHandlertargetmx:SetEventHandlertarget="{submitButton}"name="click" handler="trace('done');"/> </mx:State><mx:Statenamemx:Statename="clearState"basedOn=""> <mx:SetPropertytargetmx:SetPropertytarget="{submitButton}"name="label" value="clear"/> <mx:SetEventHandlertargetmx:SetEventHandlertarget="{submitButton}"name="click" handler="emptyDocument()"/> </mx:State></mx:states> <mx:Buttonidmx:Buttonid="submitButton"/>
在Flex4beta中,代码如下:
<s:states> <s:Statenames:Statename="submitState"/> <s:Statenames:Statename="clearState"/> </s:states><s:Buttonlabel.submitStates:Buttonlabel.submitState="submit" textDecoration.submitState="underline"click.submitState="trace('done') "click.clearState="emptyDocument() "label.clearState="clear"textDecoration.clearState="none"/>
◆组件不能再处于未定义状态或空状态。默认情况下,声明的***个状态是组件的初始状态。
当文档使用MXML2009语言名称空间时,可以使用新语法。可以混合使用旧版语法和新版状态语法。只有MXML2006名称空间中可以使用旧版语法。
此外,各个组件现在支持外观类中定义的一组状态,这使得根据组件状态应用可视变化更加简单。例如,如果查看SparkButton的外观,您会发现已定义以下状态:
<s:states> <s:Statenames:Statename="up"/> <s:Statenames:Statename="over"/> <s:Statenames:Statename="down"/> <s:Statenames:Statename="disabled"/> </s:states>
ButtonSkin类定义了各个状态中SparkButton在可视方面的变化。
关于“Flex4beta状态语法中的变化是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。