Flex4 ViewStack使用

下面是显示两个View的ViewStack

使用ButtonBar设置View切换

<?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"
			   xmlns:views="views.*" 
			   creationComplete="init()">
	
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.events.IndexChangedEvent;
			
			protected function init():void  
			{
				stack.addEventListener(IndexChangedEvent.CHANGE,Stack_ItemChanged_Call);
			}
			
			protected function Stack_ItemChanged_Call(event:IndexChangedEvent):void
			{
				var related:Object = event.relatedObject;
				Alert.show(" Old Index:"+event.oldIndex.toString()+"\n New Index:"+
					event.newIndex.toString()+"\n Label:"+related.label);
			}
			
		]]>
	</fx:Script>
	<fx:Declarations>
	</fx:Declarations>
	<s:Panel id="mix" verticalCenter="0" horizontalCenter="0" title="Mix" width="450" height="300">
		<!--使用默认设定-->
		<s:ButtonBar dataProvider="{stack}"/>
		<mx:ViewStack id="stack" x="20" y="20" width="400" height="200">
			<views:TVView label="TV"/>
			<views:ComputerView label="Computer"/>
		</mx:ViewStack>
	</s:Panel>
</s:Application>

 手动设置实现View切换

<?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"
			   xmlns:views="views.*"
			   creationComplete="init()">
	
	<fx:Script>
		<![CDATA[
			
			import mx.controls.Alert;
			import mx.events.IndexChangedEvent;
			
			protected function init():void  
			{
				Cmd_Tv.addEventListener(MouseEvent.CLICK,Cmd_Tv_Clicked_Call);
				Cmd_Com.addEventListener(MouseEvent.CLICK,Cmd_Com_Clicked_Call);
				stack.addEventListener(IndexChangedEvent.CHANGE,Stack_ItemChanged_Call);
			}
			
			protected function Stack_ItemChanged_Call(event:IndexChangedEvent):void
			{
				var related:Object = event.relatedObject;
				Alert.show(" Old Index:"+event.oldIndex.toString()+"\n New Index:"+
					event.newIndex.toString()+"\n Label:"+related.label);
			}
			
			protected function Cmd_Tv_Clicked_Call(event:Event):void
			{
				// 通过结点设定
				stack.selectedChild =TVstack ;
				// 通过索引设定
				stack.selectedIndex = 0;
			}
			
			protected function Cmd_Com_Clicked_Call(event:Event):void
			{
				stack.selectedChild =Comstack ;
				stack.selectedIndex = 1;
			}
		]]>
	</fx:Script>
	<fx:Declarations>
	</fx:Declarations>
	<s:Panel id="mix" verticalCenter="0" horizontalCenter="0" title="Mix" width="450" height="300">
		<s:layout>
			<s:VerticalLayout paddingLeft="20" paddingRight="20" paddingTop="10"/>
		</s:layout>
		<s:HGroup>
			<s:Button label="TV" id="Cmd_Tv"/>
			<s:Button label="Com" id="Cmd_Com"/>
		</s:HGroup>
		
		<mx:ViewStack id="stack" width="400" height="200">
			<views:TVView id="TVstack" label="TV"/>
			<views:ComputerView id="Comstack" label="Computer"/>
		</mx:ViewStack>
	</s:Panel>
</s:Application>

 使用的两个VIew如下

<?xml version="1.0" encoding="utf-8"?>
<s:NavigatorContent xmlns:fx="http://ns.adobe.com/mxml/2009" 
					xmlns:s="library://ns.adobe.com/flex/spark" 
					xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%">

	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	<s:Panel title="TVs" width="100%" height="100%">
		<s:layout>
			<s:VerticalLayout paddingTop="20" paddingBottom="20" paddingLeft="20" paddingRight="20"/>
		</s:layout>
		<s:Group width="100%" enabled="false">
			<s:TextInput width="100%"/>
			<s:Button label="Search for channel"/>
		</s:Group>
		<s:Line width="100%"/>
		<s:Spacer height="10"/>
		<s:Label text="There are no channels avaiable."/>
	</s:Panel>
</s:NavigatorContent>

 

<?xml version="1.0" encoding="utf-8"?>
<s:NavigatorContent xmlns:fx="http://ns.adobe.com/mxml/2009" 
					xmlns:s="library://ns.adobe.com/flex/spark" 
					xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%">
	
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	<s:Panel title="Computer" width="100%" height="100%">
		<s:layout>
			<s:VerticalLayout paddingTop="20" paddingBottom="20" paddingLeft="20" paddingRight="20"/>
		</s:layout>
		<s:Group width="100%" enabled="false">
			<s:TextInput width="100%"/>
			<s:Button label="Search for IBM Machine"/>
		</s:Group>
		<s:Line width="100%"/>
		<s:Spacer height="10"/>
		<s:Label text="You can't afford a IBM..."/>
	</s:Panel>
</s:NavigatorContent>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值