当前位置: > > > Flex4 - 基于Spark List的控件选中项改变事件:changing,change

Flex4 - 基于Spark List的控件选中项改变事件:changing,change

对于Spark List 的控件(Spark ListBase 类及其子类,如 ButtonBar、ComboBox、DropDownList、List 和 TabBar)。
1,如果改变选中项,改变前会触发changing事件,改变后会触发change事件。
2,事件对象类型是IndexChangeEvent,可以通过event.newIndex,event.oldIndex来获取改变前后项的索引。
3,对于有些项如果不想被选中。可以在changing事件处理程序中判断,调用event.preventDefault();来阻止选中项改变。
(注意:当用户与此控件交互时,才分派此事件。以编程方式更改 selectedIndex 或 selectedItem 属性的值时,该控件并不分派 changing 事件,而是分派 valueCommit 事件)
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  fontFamily="微软雅黑"
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx">
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			
			import spark.events.IndexChangeEvent;
			
			protected function list1_changingHandler(event:IndexChangeEvent):void
			{
				//如果点击第3项,则不让选中
				if(event.newIndex == 2){
					event.preventDefault();
				}
				//如果点击项值为"选项5",则不让选中
				if((event.currentTarget as List).dataProvider.getItemAt(event.newIndex) == "选项5"){
					event.preventDefault();
				}
			}
			
			protected function list1_changeHandler(event:IndexChangeEvent):void
			{
				Alert.show("change");
			}
			
		]]>
	</fx:Script>
	<s:List x="20" y="20" changing="list1_changingHandler(event)" change="list1_changeHandler(event)">
		<s:ArrayCollection>
			<fx:String>选项1</fx:String>
			<fx:String>选项2</fx:String>
			<fx:String>选项3</fx:String>
			<fx:String>选项4</fx:String>
			<fx:String>选项5</fx:String>
		</s:ArrayCollection>
	</s:List>
</s:Application>
评论0