`

Flex学习笔记_06 使用组件处理数据和交互_02导航类组件

阅读更多

2. 导航类组件

 

2.1 ToggleButtonBar 导航按钮组

ToggleButtonBar ButtonBar 的子类,增强来导航功能,可以持续保持客户端状态。

同时在界面上对当前的选中状态做明确的标识。

 

toggleOnClick 属性指明是否可以通过单击取消选中的状态。true:当鼠标单击已经选中的按钮时,该按钮恢复到正常状态。false:则不会恢复。

 

itemClick="btn_click_handler(event);" 监听用户的单击动作。

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
 creationComplete="initUI()">
	<mx:Style source="style.css"/>
	<mx:Script>
		<![CDATA[			
			//导入点击事件对象
			import mx.events.ItemClickEvent; 		
			internal function initUI():void{
				var data_arr:Array = new Array();
				data_arr.push("Flex");
				data_arr.push("Flash");
				data_arr.push("Flash Media Server");
				data_arr.push("Flex Data Server");
				//添加数据源
				btns.dataProvider = data_arr;
			}
			//处理itemClick点击事件
			internal function btn_click_handler(evt:ItemClickEvent):void{
				tip_txt.text = "点击的按钮:"+evt.index+":"+evt.label;
			}
		]]>
	</mx:Script>
	<mx:ToggleButtonBar toggleOnClick="true" id="btns" itemClick="btn_click_handler(event);" 
horizontalGap="5" x="22" y="82">
    </mx:ToggleButtonBar>
    
    <mx:Label id="tip_txt" text="还没有点击呢" x="22" y="126" width="266"/>
	
</mx:Application>

 

2.2  TabBar 标签组

TabBar ToggleButtonBar 的基础上继续扩展,改变了对选中状态的表现形式,将选中项以标签的形式突出显示,这点跟TabNavigator 相同,不过它不包括其他子级容器。

可和任何组件结合使用,而不仅仅限于容器。

TabBar 本身只包括了一组标签,没有其他内容。

myViewstack.selectedIndex = evt.index;

将TabBar 的按钮索引和ViewStack 的被选中元素的位置关联起来。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	
	<mx:Style source="style.css"/>
	<mx:Script>
		<![CDATA[			
		
			import mx.events.ItemClickEvent; 		
		
			internal function btn_click_handler(evt:ItemClickEvent):void{
				myViewstack.selectedIndex = evt.index;
			}
		]]>
	</mx:Script>
	
	<mx:Panel x="43" y="10" width="366" height="310" layout="absolute" horizontalGap="0" verticalGap="0" title="TabBar实例" borderStyle="solid">
	<mx:TabBar id="btns" x="10" y="10" width="308" itemClick="btn_click_handler(event)">
		<mx:dataProvider>
			<mx:Array>
				<mx:String>Flex</mx:String>
				<mx:String>Flash</mx:String>
				<mx:String>FMS</mx:String>
				<mx:String>FDS</mx:String>
			</mx:Array>
		</mx:dataProvider>
	</mx:TabBar>
	<mx:ViewStack x="10" y="40" id="myViewstack" width="308" height="200">
		<mx:Canvas id="child1" label="View 1" width="100%" height="100%">
			<mx:List>
				<mx:Array>
					<mx:Object label="请选择您感兴趣的技术:"/>					
					<mx:Object label="Flash"/>
					<mx:Object label="Flex"/>
					<mx:Object label="Flash Media server"/>
					<mx:Object label="Breeze"/>
				</mx:Array>
			</mx:List>
		</mx:Canvas>
		<mx:Canvas id="child2" label="View 2" width="100%" height="100%">
			<mx:TextInput text="请输入您的邮箱地址" />
			<mx:Button x="168" y="1" label="订阅Flash Rss"/>
		</mx:Canvas>
		<mx:Canvas id="child3" label="View 3" width="100%" height="100%">
			<mx:Label text="FMS 2.0.4发布了" />
		</mx:Canvas>
		<mx:Canvas id="child4" label="View 4" width="100%" height="100%">
			<mx:Label text="Breeze" />
		</mx:Canvas>
	</mx:ViewStack>
	</mx:Panel>
	
</mx:Application>
 

5.3 使用菜单导航 -- 创建一个简单的多久菜单

使用MenuBar 菜单条作全局导航。

在使用AS 定义XML 数据时,可以使用换行符保持XML数据的格式,只要XML 的标签正确,编译器自动会识别。

在node 元素中的 enabled 属性 代表是否可用,默认true为可用,false为不可用菜单项变成灰色。

type 属性 为 separator 代表一个分割线。

 

XML 和 XMLList 都是用来定义XML 数据,不同的是,XMLList 是多个XML 数据的集合。

在这个例子中,mXML是XMLList类型,根节点被忽略,item 节点被解析为独立的 XML 数据。 item 节点必须有一个根节点,不可忽略。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
	
	<mx:Style source="style.css"/>			
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;		
			import mx.events.MenuEvent;
			
			private var mXML:XML =
                <menu label = "系统菜单">
                	<item label="文件">
                        <node label="新建画板" data="new"/>
                        <node label="清除画板" data="clear" enabled="false"/>
                        <node type="separator" />
                        <node label="退出系统" data="logout"/>
                    </item>
                    <item label="帮助">
                     	<node label="帮助" data="help"/>
                     	<node label="关于作者" data="about"/>
                     </item>
                </menu>;
			
			internal function initApp():void{
				//为MenuBar添加数据源
				myMenu.dataProvider = mXML;
				//监听Menu的点击实践
				myMenu.addEventListener(MenuEvent.ITEM_CLICK,menuClickHandler);
			}
			
			internal function menuClickHandler(evt:MenuEvent):void{
				Alert.show("选择菜单:"+evt.item.@data,"提示信息");
			}
		]]>
	</mx:Script>
	<mx:VBox width="100%" height="100%">
		<mx:Canvas styleName="windowBar" width="100%">
			<mx:MenuBar labelField="@label"  height="30" id="myMenu" width="100%"></mx:MenuBar>	
		</mx:Canvas>
		<mx:Canvas width="100%" height="100%" id="paper">
			
		</mx:Canvas>			
	</mx:VBox>
	
</mx:Application>
 

2.4 PopUpButton 下拉弹出窗口控件

PopUpButton 是一个特殊的Button, 本身由两个Button组成:主按钮和子按钮。点击子按钮可以将任何组件作为窗口弹出,置于最上层。这个弹出动作由 PopUpMenuButton 完成。

PopUpButton 的open 事件和 close 事件:弹出和弹出窗口关闭时触发。

popUp 属性:将要弹出的对象。

DropdownEvent.CLOSE 和 DropdownEvent.OPEN 事件专门针对弹出窗口。点击主按钮,触发的事件和Button 是一样的,比如click。

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()" layout="absolute">
	<mx:Style>
		Application{
			fontSize:12;
			backgroundGradientColors: #c0c0c0, #c0c0c0;
		}
	</mx:Style>
	<mx:Script>
		<![CDATA[
			import mx.containers.Panel;		
			import mx.controls.Alert;	
			import mx.events.DropdownEvent;

			private var panel:Panel;

			private function initApp():void {
				panel = new Panel();  //声明新的Panel
				panel.title = "panel";
				panel.width = 200;
				panel.height = 200;
				popBtn.popUp = panel;			//指定popUp目标对象		
				popBtn.addEventListener(DropdownEvent.CLOSE,closeHandler);	//			
				popBtn.open();		//将窗口弹出
			}			

			
			private function closeHandler(evt:DropdownEvent):void{
				Alert.show("关闭窗口");
			}
		]]>
	</mx:Script>
    <mx:PopUpButton id="popBtn" label="弹出" width="135"  x="23" y="23"/>
	
</mx:Application>
 

2.5 PopUpMenuButton

继承自PopUpButton,是 PopUpButton的一个特殊实例。只能把Menu 当作弹出窗口,且Menu 只能有1给层级。

Menu 用来创建菜单,不过和 Menu相比,它少了菜单条。且没有对应的MXML标签,只能由代码创建。

PopUpMenuButton 中内置了一个Menu 。

定义XML 数据,将它传给 PopUpMenuButton 的 dataProvider ,作为内置的Menu 的数据源。

MenuEvent.ITEM_CLICK 事件:当菜单项被选中时,事件被触发,同时菜单关闭。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()" layout="absolute">
	<mx:Style>
		Application{
			fontSize:12;
			backgroundGradientColors: #c0c0c0, #c0c0c0;
		}
	</mx:Style>
	<mx:Script>
		<![CDATA[	
			import mx.controls.Alert;	
			import mx.events.MenuEvent;
			
			private var mXML:XMLList =
                <>
                	<node label="文件">
                        <node label="新建画板" data="new"/>
                        <node label="清除画板" data="clear" enabled="false"/>
                        <node label="退出系统" data="logout"/>
                    </node>
                    <node label="工具"/>                     	
                    <node label="帮助">
                     	<node label="帮助" data="help"/>
                     	<node label="关于作者" data="about"/>
                     </node>
                </>;
			private function initApp():void {
				popBtn.dataProvider = mXML; //弹出菜单的数据源
				popBtn.addEventListener(MenuEvent.ITEM_CLICK,clickHandler);	
			}			
			private function clickHandler(evt:MenuEvent):void{
				Alert.show("选择菜单:"+evt.label+":菜单序号:"+evt.index);
			}
		]]>
	</mx:Script>
    <mx:PopUpMenuButton id="popBtn" labelField="@label" width="135"  x="23" y="23"/>
	
</mx:Application>
 

 

 

分享到:
评论

相关推荐

    flex学习笔记 flex学习总结 flex学习教程

    本教程是作者精心编写的Flex学习资料,适合初学者入门,通过图文并茂的方式,帮助读者快速掌握Flex的基本概念和核心技能。 1. **Flex基础**:Flex提供了MXML和ActionScript两种编程方式。MXML是一种声明式语言,...

    FLEX学习笔记

    《FLEX学习笔记》 FLEX,全称为Flex Builder,是由Adobe公司开发的一款基于MXML和ActionScript的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者创建具有交互性、响应性和丰富用户体验的Web应用。FLEX的...

    Flex学习笔记.rar

    本压缩包“Flex学习笔记.rar”显然是一份针对初学者的教程资料,旨在帮助新接触Flex的开发者快速上手。 在“FlexBeginner.pdf”这份文档中,你可以期待找到以下关键知识点: 1. **Flex概述**:介绍Flex技术的基本...

    Flex新手教程_入门级学习笔记

    ### Flex新手教程_入门级学习笔记 #### ActionScript核心概念 **ActionScript(简称AS)** 是一种面向对象的编程语言,主要用于开发Flex应用程序。掌握AS的基础知识对于学习Flex至关重要。 ##### 类和对象 (Class...

    Flex学习笔记

    这篇“Flex学习笔记”可能是作者在深入研究Flex技术过程中整理的心得体会和实践案例,结合了《Flex3权威指南》这本书的内容。 在Flex中,ActionScript是核心编程语言,它是基于ECMAScript的一个版本,专门针对富...

    flex学习笔记

    本篇“Flex学习笔记”将带你深入理解Flex的核心概念、架构以及如何使用它来构建高效的应用程序。 一、Flex基础 1. MXML与ActionScript:Flex主要使用MXML(Markup Language for Flex)和ActionScript两种语言进行...

    Flex学习笔记.doc

    Flex学习笔记概述 Flex是一种由Adobe开发的企业级富互联网应用(RIA)的表示层解决方案,其主要目的是提供高度交互和动态的用户体验。Flex的核心在于它的编程语言MXML和ActionScript(AS),这两种语言结合在一起,...

    flex 学习详细笔记

    本笔记将深入探讨Flex的基本概念、架构、组件、布局管理器以及事件处理机制,帮助初学者全面理解并掌握Flex开发。 1. **Flex简介**:Flex是一种开放源代码的框架,主要用于创建交互式的、基于Web的用户界面。它允许...

    Flex学习笔记,入门材料

    ### Flex学习笔记:ActionScript与Flex开发入门 #### 1. ActionScript核心概念 ##### 1.1 类和对象(Class and Object) 类是对象的模板,定义了一组具有相同特性和行为的对象的共同属性和方法。在ActionScript中...

    flex actionscript学习笔记

    Flex ActionScript 学习笔记是关于使用Adobe Flex技术并结合ActionScript 3.0进行开发的知识总结。ActionScript 3.0是随着Flash CS3一起推出的一种强大的编程语言,相较于之前的ActionScript版本,它有着显著的提升...

    Flex学习笔记-由浅入深

    最后,通过预定义的可视化组件构建用户界面,使用styles和skins自定义外观,编写事件处理和脚本控制应用程序行为,连接数据并使用服务进行通信。最后,编译并运行应用程序。 AS3语言基础是Flex开发的核心,以下是...

    《Flex企业应用开发实战》学习笔记之Flex企业应用开发基础[收集].pdf

    《Flex企业应用开发实战》的学习笔记主要探讨了Flex在企业应用开发中的基础知识,包括MXML语言、客户端状态保持、客户端MVC模式以及数据绑定技术。 2.1 MXML语言是Flex应用开发的核心部分,它是一种XML标记语言,与...

    Away3D_4.1+Flex4.7学习笔记+案例

    《Away3D_4.1+Flex4.7学习笔记与案例解析》 Away3D是一个强大的开源3D引擎,专为Adobe Flash平台设计,它允许开发者创建丰富的、交互式的三维应用程序。本学习笔记结合Flex4.7框架,将深入探讨如何在Flash平台上...

    精讲Flex4组件开发(附源码)

    掌握这些生命周期方法对于优化性能和处理用户交互至关重要。例如,`createChildren()` 方法用于创建组件的子元素,`measure()` 方法计算组件大小,`layout()` 处理组件布局,`updateDisplayList()` 更新可视表示,而...

    flex + java 初学者 笔记 学习资料

    本文档是针对Flex和Java初学者的学习笔记,涵盖了Flex中的基础组件、文本处理、样式设计、行为对象以及动画效果。 一、Flex基础组件 1. Button:按钮组件,可以设置文字和图标,图标通过`icon="@Embed('图片路径')...

    Flex + Hessian 学习笔记(二)

    "src"目录则包含了Flex项目的源代码文件,通常这些文件是.mxml(Flex组件的主文件)和.as(ActionScript类文件)。开发者可以通过阅读这些源代码来理解Flex如何设置Hessian服务的连接,如何定义和调用服务方法,以及...

Global site tag (gtag.js) - Google Analytics