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

flex day 8 视图状态

阅读更多

首先是一个运算符。?:conditional

用法:expression1?expression2:expression3

计算expression1,如果值为true,则结果为expression2,如果值为false,则结果为expression3

(currentState == newState) ? ' ':newState

这里是一个状态转换的判断条件。

 

stateGroup,当组件定义的状态比较多的时候,我们可能希望将针对某几种状态做统一的设置,这个时候可以用到状态组。一个状态组可以包含多个状态,一个状态可以隶属于多个状态组。excludeFrom排除在状态组外,还有includeIn包含在某一个状态组。

 

以下是flex一学就会的代码,值得学习

<?xml version="1.0" encoding="utf-8"?>
<s:Panel 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="onCreationComplete()">

	<fx:Metadata>
		[Event(name="headerClick")]
	</fx:Metadata>
	<fx:Script>
		<![CDATA[
			import spark.skins.spark.PanelSkin;
			private function onCreationComplete():void{
				var panelSkin:PanelSkin = skin as PanelSkin;
				if (panelSkin == null) return;
				panelSkin.addEventListener(MouseEvent.CLICK,onHeaderClick);
			}
			private function onHeaderClick(event:MouseEvent):void{
				if (event.currentTarget is PanelSkin){
					var ps:PanelSkin = PanelSkin(event.currentTarget);
					if(event.localY<30){
						dispatchEvent(new Event("headerClick"));
					}
				}
			}
		]]>
	</fx:Script>
	<s:layout>
		<s:VerticalLayout paddingLeft="10" paddingTop="10"
						  paddingBottom="10" paddingRight="10"/>
	</s:layout>
</s:Panel>

 

 

主程序

 

 

<?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" minWidth="955" minHeight="600" xmlns:components="components.*">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			private function toggleState(newState:String):void{
				currentState = (currentState == newState) ? '':newState;
			}
		]]>
	</fx:Script>
	<s:layout>
		<s:BasicLayout/>
	</s:layout>
	<s:states>
		<s:State name="default"/>
		<s:State name="stateOne"
				 stateGroups="[noStateTwo,noStateThree]"/>
		<s:State name="stateTwo"
				 stateGroups="[noStateOne,noStateThree]"/>
		<s:State name="stateThree"
				 stateGroups="[noStateOne,noStateTwo]"/>
	</s:states>
	<!--excludeFrom排除在状态组外,还有includeIn包含在某一个状态组。 -->
	<components:HPanel id="stateOnePanel" title="State One Panel"
					   left="10" top="10" width="200" right.stateOne="10"
					   height="100" bottom.stateOne="10" excludeFrom="noStateOne"
					   headerClick="toggleState('stateOne')">
		<s:Label text="松尾 芭蕉" fontSize="20"
				 fontSize.stateOne="140"/>
	</components:HPanel>
	<components:HPanel id="stateTwoPanel" title="State Two Panel"
					   left="10" bottom="10" top="115" top.stateTwo="10"
					   width="200" right.stateTwo="10" excludeFrom="noStateTwo"
					   headerClick="toggleState('stateTwo')">
		<s:Label width="100%" height="100%" fontStyle="italic"
				 text="(I am trusting that the following pages
				 http://en.wikipedia.org/wiki/Matsuo_Bash%C5%8D
				 and http://en.wikisource.org/wiki/Frog_Poem
				 have the Kanji of Matsuo Bashō's name and
				 famous poem correct.)"/>
	</components:HPanel>
	<components:HPanel id="stateThreePanel" title="State Three Panel"
					   excludeFrom="noStateThree" top="10"
					   left="220" left.stateThree="10" right="10" bottom="10"
					   headerClick="toggleState('stateThree')">
		<s:Label fontSize="50" fontSize.stateThree="70"
				 text="古池や&#13;蛙飛びこむ&#13;水の音"/>
		<s:Label text="--Matsuo Bashō&#13;&#13;
				 The ancient pond&#13;A frog leaps in&#13;The sound of the water.
				 &#13;--Donald Keene"/>
	</components:HPanel>
</s:Application>

 

 

0
1
分享到:
评论

相关推荐

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

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

    Flex视图切换,自定义控件Demo.rar

    在Flex中,视图切换和自定义控件是构建用户界面时的重要技术,它们极大地增强了用户体验和交互性。 视图切换是Flex应用程序中常见的功能,允许用户在多个界面或工作区之间进行导航。这在多页面或模块化的应用中非常...

    Flex万年历记事本_flex源码

    6. **状态管理**:Flex支持多种视图状态,可以方便地切换不同界面布局。在万年历记事本中,可能有多种状态,如“日历查看”、“记事编辑”等。 7. **自定义组件**:为了实现特定的视觉效果或功能,开发者可能会创建...

    Flex 模拟CheckBox多状态切换

    "Flex模拟CheckBox多状态切换"就是这样一个例子,它扩展了标准的CheckBox组件,提供了√、×、和○三种状态供用户选择,以实现更丰富的交互体验。在本文中,我们将深入探讨如何在Flex中实现这样的功能。 首先,我们...

    flex8 网格控件

    Flex8网格控件,也称为DataGrid,是用于显示和操作数据集的视图组件。它非常适合用来展示大量的结构化数据,如数据库表格,允许用户进行排序、分页、筛选和编辑等操作。DataGrid控件的主要特点包括: 1. **数据绑定...

    flex安装及配置说明,方便熟悉flex

    只是你就可以在 MyEclipse6.0 下切换视图,从中找到 Flex 对应的视图结构。 4. Flex 环境的配置 在安装 FlexBuilder 插件后,需要将 Flex Builder 的插件 copy 到 MyEclipse 的插件目录下,以便于在 MyEclipse 中...

    FLEX4按钮状态切换背景

    本资源重点在于按钮在不同状态下的背景切换,这对于创建具有视觉吸引力和良好用户体验的Flex应用至关重要。下面我们将深入探讨Flex4按钮的状态管理以及如何实现背景的动态变化。 1. Flex4 概述: Flex4是Adobe Flex...

    Flex 4的十大变化

    4. **View States改进**:Flex 4对视图状态进行了优化,简化了状态切换的语法,使得组件在不同状态下的显示和行为管理变得更加容易。新的`includeIn`和`excludeFrom`属性使得开发者可以更灵活地控制组件在哪些状态中...

    flex web工作流程图

    4. **数据绑定**:Flex支持数据绑定,允许将视图组件的状态与后台数据模型关联起来。在工作流程图中,这可以用来动态更新图形元素,反映工作流程的变化。 5. **事件处理**:通过监听和响应用户操作或程序事件,可以...

    Flex4-in-a-day

    本文档《Flex4-in-a-day》专注于向开发者介绍Flex4的主要新特性,以帮助他们快速入门并理解Flex4的架构和应用。 首先,文档开篇介绍了一些基本概念,比如MXML 2009、Namespaces(命名空间)、States(状态)以及...

    flex8表格控件

    flex8表格控件,可以方便的实现表格的数据处理,并且里面附带了全面的例子,解决很多程序员的表格问题

    flex8_T205注册码

    当前官网最新版是ComponentOne Studio? for ActiveX 2014 V3,包括下列几个组成部分:该软件包是单独发行的。同时,官网其它新版的软件,如Ultimate、Studio Enterprise等软件中也包含了tudio? for ActiveX。...

    flex in a week day2

    在“flex in a week day2”这个主题中,我们继续深入学习CSS布局中的Flexbox模型,这是现代网页设计中至关重要的一个部分。Flexbox允许我们更灵活地控制元素在容器内的排列方式,无论屏幕尺寸如何变化,都能实现响应...

    一周学会Flex4.0练习程序 Day1

    8. **项目设置和调试**:了解如何在 Flex Builder 中创建新项目,配置编译选项,以及如何使用调试器来查找和修复错误。 9. **FiaW_Day1_ProjectArchive**:这个压缩包可能包含了第一天练习项目的源代码和资源文件,...

    android获取网络状态Flex开发

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

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

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

    Flex3与Flex4对比

    - **基于状态的代码视图**:这一特性在Flex4的高级版本中提供,可以更清晰地管理不同状态下的代码逻辑。 ##### 7. 使用数据 - **服务检查向导**:仅在Flex4的高级版本中提供,可以简化对数据和服务的配置。 - **...

    Flex入门资料 flex3.0

    6. **状态管理**:讲解如何利用Flex的状态管理功能来改变应用程序的不同视图或阶段,比如加载、登录、主界面等。 7. **服务与数据访问**:探讨如何使用Flex与服务器进行通信,包括XML、AMF(Action Message Format...

    flex精通 flex接口

    &lt;?xml version="1.0" encoding="utf-8"?&gt; ``` 3. **添加面板容器**:在`&lt;mx:Application&gt;`标签内添加面板容器代码: ```xml ``` 面板容器是Flex布局中的基本组成部分之一,用于容纳其他UI元素。 4....

    MyEclipse安装Flex 3 插件及新建Flex项目演示

    12. 至此,基本安装完成,你可以通过MyEclipse6.0的视图切换找到Flex相关的视图结构。 接下来,我们将创建一个新的Flex项目: 1. 在MyEclipse中开启Flex视图,右键新建Flex项目,输入项目名称,确保“Server ...

Global site tag (gtag.js) - Google Analytics