Flex4 - 基于Spark List的控件选中项改变事件:changing,change
作者:hangge | 2014-11-18 10:19
对于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>
全部评论(0)