`
msyspacer
  • 浏览: 9917 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Flex4 state状态设置

 
阅读更多

下面是一组最简单的状态

 

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   creationComplete="init()">
	<fx:Declarations>
		<!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			protected function init():void
			{
				currentState = 'style1';
				st1.addEventListener(MouseEvent.CLICK,st1_cicked);
				st2.addEventListener(MouseEvent.CLICK,st2_cicked);
			}
			// 脚本控制切换
			protected function st1_cicked(event:Event):void
			{
				currentState = 'style1';
			}
			
			protected function st2_cicked(event:Event):void
			{
				currentState = 'style2';
			}
		]]>
	</fx:Script>
	<!--添加了2个state-->
	<s:states>
		<s:State name="style1"/>
		<s:State name="style2"/>
	</s:states>
	<s:Panel title="Mix" horizontalCenter="0" verticalCenter="0" width="450" height="300">
		<s:VGroup verticalCenter="0" horizontalCenter="0">
			<s:HGroup>
				<s:Button label="Style1" id="st1"/>
				<s:Button label="Style2" id="st2"/>
			</s:HGroup>
			<!--设置了2种状态下的属性-->
			<s:Label text="I just want to show this!" visible.style1="false" visible.style2="true" fontWeight="bold" fontSize="15"/>
		</s:VGroup>
	</s:Panel>
</s:Application>

 使用stateGroup的state

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   creationComplete="init()">
	<fx:Declarations>
		<!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			protected function init():void
			{
				currentState = 'style1_1';
				st1.addEventListener(MouseEvent.CLICK,st1_cicked);
				st2.addEventListener(MouseEvent.CLICK,st2_cicked);
			}
			// 脚本控制切换
			protected function st1_cicked(event:Event):void
			{
				if(currentState == 'style1_1' || currentState == 'style1_2')
					currentState = 'style2_1';
				else  if(currentState == 'style2_1' || currentState == 'style2_2' )
						currentState = 'style1_1';
			}
			
			protected function st2_cicked(event:Event):void
			{
				if(currentState == 'style1_1' || currentState == 'style1_2')
					currentState = 'style2_2';
				else if(currentState == 'style2_1' || currentState == 'style2_2' )
					currentState = 'style1_2';
			}
			
			protected function st3_cicked(event:Event):void
			{
				currentState = 'style1_1';
			}
		]]>
	</fx:Script>
	<!--添加了4个state,2个stateGroup。stateGroup设置的属性是该组下state的公共属性。-->
	<s:states>
		<s:State name="style1_1" stateGroups="style1"/>
		<s:State name="style1_2" stateGroups="style1"/>
		<s:State name="style2_1" stateGroups="style2"/>
		<s:State name="style2_2" stateGroups="style2"/>
	</s:states>
	<s:Panel title="Mix" horizontalCenter="0" verticalCenter="0">
		<s:VGroup verticalCenter="0" horizontalCenter="0">
			<s:HGroup>
				<s:Button label.style1_1="Style1_1_A" label.style1_2="Style1_2_A" label.style2_1="Style2_1_A" label.style2_2="Style2_2_A" color.style1="#000000" color.style2="#C08888" id="st1"/>
				<s:Button label.style1_1="Style1_1_B" label.style1_2="Style1_2_B" label.style2_1="Style2_1_B" label.style2_2="Style2_2_B" color.style1="#000000" color.style2="#C08888" id="st2"/>
			</s:HGroup>
			<!--该button显示在style2中-->
			<s:Button label="Style2!" includeIn="style2" />
			<!--该组件显示在除了style1_1的所有状态中-->
			<s:Button label="Style1!" excludeFrom="style1_1"/>
		</s:VGroup>
	</s:Panel>
</s:Application>
 综合小程序

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" 
			   creationComplete="init()" xmlns:views="views.*">
	<s:layout>
		<s:VerticalLayout paddingLeft="20" paddingTop="20"/>
	</s:layout>
	<s:states>
		<s:State name="login" stateGroups="loggedOut"/>
		<s:State name="computers" stateGroups="loggedIn"/>
		<s:State name="info" stateGroups="loggedIn"/>
		<s:State name="tv" stateGroups="loggedIn"/>
	</s:states>
	<fx:Declarations>
		<!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			
			protected function init():void
			{
				
			}
		]]>
	</fx:Script>
	<!--创建登陆界面-->
	<s:Panel includeIn="loggedOut" title.login="Get in there!">
		<s:layout>
			<s:VerticalLayout/>
		</s:layout>
		<s:Form>
			<s:FormItem label="用户名">
				<s:TextInput id="username"/>
			</s:FormItem>
			<s:FormItem label="密   码">
				<s:TextInput id="password"/>
			</s:FormItem>
		</s:Form>
		<mx:ControlBar>
			<s:Button label="Login" id="login" click="currentState='computers'"/>
		</mx:ControlBar>
	</s:Panel>
	<!--创建登陆后显示-->
	<s:HGroup includeIn="loggedIn">
		<s:ButtonBar dataProvider="{contentStack}"/>
		<s:Button label="log out" color="black" id="logout" click="currentState='login'"/>
	</s:HGroup>
	<mx:ViewStack id="contentStack" includeIn="loggedIn">
		<views:TVView label="TV"/>
		<views:ComputerView label="Com"/>
	</mx:ViewStack>
</s:Application>
 
分享到:
评论

相关推荐

    FLEX4的皮肤skin

    总结来说,FLEX4的皮肤系统允许开发者通过SparkSkin类和相关的皮肤状态来实现高度定制的用户界面。通过理解SparkSkin的结构和工作原理,以及如何应用和创建自定义皮肤,开发者能够为Flex应用程序带来独特的视觉风格...

    了解 flex State对象

    在Flex中,组件的状态可以通过`currentState`属性来设置和访问。例如,通过以下代码可以切换到“Register”状态: ```actionscript currentState = 'Register'; ``` 同时,事件处理函数也可以用来响应状态变化,...

    flex state跳转

    1. 使用`currentState`属性:每个Flex组件都有一个`currentState`属性,可以设置为预定义的状态名来切换状态。例如: ```actionscript this.currentState = "selected"; ``` 2. 触发事件:可以监听并响应某些事件...

    flex的state组件和trasition组件例子

    State组件是Flex中用于管理不同UI状态的机制,它允许开发者定义一个组件在不同场景下的多种外观和行为。例如,一个按钮在被点击时可能需要改变颜色或显示不同的图标,这些不同的表现形式就可以通过定义不同的State来...

    Flex4创建页面

    ### Flex4创建页面知识点详解 ...通过以上内容的详细介绍,我们可以清晰地理解如何在Flex4中创建页面(状态),并实现页面间的逻辑切换及数据绑定。这对于构建复杂且交互丰富的Flex应用来说是非常重要的。

    flex 4 生命周期

    在Flex 4中,Adobe引入了更高效的设计模式,如States和Effects,以更好地管理组件的状态变化。 首先,组件的创建过程始于`initialize`事件,这是组件实例化后首次允许开发者进行属性设置的时刻。接着,`...

    Flex4的皮肤文档及demo

    在Flex4中,皮肤定制是UI设计的重要组成部分,它允许开发者根据需求自定义组件的外观和交互效果。本主题主要围绕`SparkSkin`类和`Skin`类展开,这两类在Flex4的皮肤定制中扮演着核心角色。 **SparkSkin介绍** `...

    Flex 模拟CheckBox多状态切换

    6. **测试与使用**:最后,将这个新组件添加到你的Flex应用程序中,通过改变其`state`属性或交互操作,观察多状态切换的效果。 通过以上步骤,我们就成功地在Flex中实现了模拟CheckBox的多状态切换功能。这个自定义...

    flex-最简单的state对象控制

    该主题主要涉及如何通过Flex框架中的State管理机制来实现不同界面状态之间的切换。以下将围绕标题、描述以及部分代码内容进行深入解析。 ### 标题:Flex中最简单的State对象控制 这个标题表明了文章的主要讨论点...

    Flex4 Spark皮肤

    ### Flex4 Spark皮肤详细制作讲解 #### 一、引言 在Flex4中,Adobe引入了新的皮肤系统,称为Spark Skin系统,旨在提供更高效、更灵活的UI设计能力。本篇文章将详细介绍如何利用Flex4中的Spark Skin进行控件样式的...

    Flex4之控制状态转换以及产生动画特效【登录示例】

    ### Flex4之控制状态转换及产生动画特效详解 #### 一、引言 Flex4作为Adobe公司的开源框架,因其强大的跨平台能力与丰富的组件库,被广泛应用于开发复杂的富互联网应用(RIA)。本文将详细介绍如何利用Flex4实现登录...

    android获取网络状态Flex开发

    本文将深入探讨如何在Android平台上使用Flex进行网络状态检测,包括2G、2.5G以及WiFi网络的监测。 ### 知识点一:Flex与Android的结合 Flex是Adobe公司推出的一种用于构建高性能且具有丰富交互性的Web应用程序的...

    flex4实战 代码

    10. **State管理**: 通过状态管理,可以轻松地改变应用程序的不同视图,适应不同场景的需求。 11. **移动开发**: Flex4支持创建跨平台的移动应用,通过Adobe AIR运行时可以在iOS和Android等平台上运行。 通过...

    Flex4 Login DEMO project

    7. **状态管理**:Flex 4中的State机制允许根据不同的应用状态改变界面布局。在登录DEMO中,可能有登录前后的不同状态,比如错误提示状态或成功登录后的主界面状态。 8. **样式表(CSS)**:Flex 4支持使用CSS来...

    Hello! Flex 4

    8. **State管理**:Flex 4提供了一种强大的状态管理机制,允许开发者根据应用的不同阶段或用户操作来改变UI的布局和行为。掌握如何利用状态管理创建多态界面是提升用户体验的重要技能。 9. **Services和Remoting**...

    Flex使用视图状态(View States)笔记

    ### Flex使用视图状态(View States)笔记 #### 视图状态概述 视图状态(View States,简称VS)是Adobe Flex框架中一个非常实用的功能,它允许开发者根据用户的交互或程序的状态来动态地更改界面元素的外观和行为。...

    FLEX入门实例--------transition,state的综合运用

    这里的`forState`属性指定了这个过渡将在哪个状态下应用,`id`是过渡的唯一标识,`Fade`元素定义了具体的淡出效果,`duration`属性决定了动画的持续时间,`alphaFrom`和`alphaTo`设置了起始和结束时的透明度。...

    Flex 简单的几个实例 

    4. 使用TransitionManager:Flex提供了一个名为`TransitionManager`的类,可以帮助我们方便地管理状态之间的过渡。我们可以在代码中创建一个过渡对象,设置其持续时间、缓动效果等参数,然后将其应用于需要转换的...

    Flex4皮肤资料

    标题:"Flex4皮肤资料" 描述:"学习Flex4的皮肤资料,让不懂flex皮肤的人快速了解" 根据提供的信息,本文将深入解析Flex4中皮肤(skin)的概念、SparkSkin的使用方法以及如何通过自定义Skin来改变Flex应用界面的...

    Flex tree+checkbox可实现级联勾选 修改

    先看评论再下,不要那么无聊,要不就不要下 flex tree+checkbox可实现级联勾选 修改后 修改CheckTreeDemoRenderer.as这个文件中 while (!...STATE_CHECKED 状态设置成true,其他的状态如果不用全设置false

Global site tag (gtag.js) - Google Analytics