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();来阻止选中项改变。
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>