Flex 自定义List实现在切换Item前判断条件

目前项目中需要在List的Item切换前根据条件决定是否切换,在网上找到这样的思路:

 

自己实现的PreList基于List,代码如下:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:List 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="onComplete();">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.events.CloseEvent;
			import mx.events.ListEvent;
			
			public var _lastIndex:Number = 0;
			
			public function onComplete():void
			 {
				 addEventListener(ListEvent.CHANGE,onChange);
				 persistLastIndex();
			 }
			
			public function persistLastIndex():void
			{
				_lastIndex = selectedIndex;
			}
			
			public function onChange(e:ListEvent):void
			{
				Alert.show("Are you sure to change the item?","Alert",Alert.OK|Alert.CANCEL,null,onAlertClicked);
			}
			
			public function onAlertClicked(e:CloseEvent):void
			{
				if(Alert.OK == e.detail)
				{
					_lastIndex = selectedIndex;
				}
				else
				{
					selectedIndex = _lastIndex;
				}
			}
			
		]]>
	</fx:Script>
	
</mx:List>

 

使用自定义的PreList:

 

 

<?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:my="org.puremvc.as3.*"
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<mx:VBox id="dd">
	   <my:PreList>
		   <my:dataProvider>
			   <fx:Array>
				   <fx:Object data="1" label="Value 1" />
				   <fx:Object data="2" label="Value 2" />
			   </fx:Array>
		   </my:dataProvider>
	   </my:PreList>
	</mx:VBox>	
	
</s:Application>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值