Apache flex Flex组合框预更改事件
我有一个项目,在更改combobox值之前,我需要向用户弹出一个警报。 如果未保存修改,此功能允许用户保持当前状态。这意味着用户将能够取消更改 我对ComboBox进行了子分类,并尝试通过单击ComboBox.dropdown来钩住项目,但此事件是在更改值后触发的。另外,我也尝试过鼠标点击和鼠标按下,但没有成功 在我的代码中,我向CustomComboBox添加了一个“preChange”事件。在进行更改之前,应触发此事件。此外,我还引入了一个名为commitChange的方法,该方法将被手动调用以实际提交更改Apache flex Flex组合框预更改事件,apache-flex,events,combobox,Apache Flex,Events,Combobox,我有一个项目,在更改combobox值之前,我需要向用户弹出一个警报。 如果未保存修改,此功能允许用户保持当前状态。这意味着用户将能够取消更改 我对ComboBox进行了子分类,并尝试通过单击ComboBox.dropdown来钩住项目,但此事件是在更改值后触发的。另外,我也尝试过鼠标点击和鼠标按下,但没有成功 在我的代码中,我向CustomComboBox添加了一个“preChange”事件。在进行更改之前,应触发此事件。此外,我还引入了一个名为commitChange的方法,该方法将被手动调
如何才能达到预期的效果?我就是这样做的:
<?xml version="1.0" encoding="utf-8"?>
<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="onComplete();">
<mx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.controls.Alert;
import mx.events.ListEvent;
private function onComplete():void {
addEventListener(ListEvent.CHANGE, onChange);
persistLastIndex();
}
private var _lastIndex:Number = 0;
private function persistLastIndex():void {
_lastIndex = selectedIndex;
}
private function onChange(event:ListEvent):void {
Alert.show("Are you sure you want to change the selection?", "", Alert.YES|Alert.NO, null, onAlertClicked);
}
private function onAlertClicked(event:CloseEvent):void {
if ( event.detail == Alert.NO ) {
selectedIndex = _lastIndex;
} else {
_lastIndex = selectedIndex;
}
}
]]>
</mx:Script>
</mx:ComboBox>
并称之为:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:rad="uk.co.rad.*">
<rad:MyComboBox>
<rad:dataProvider>
<mx:Array>
<mx:Object data="1" label="Value 1" />
<mx:Object data="2" label="Value 2" />
</mx:Array>
</rad:dataProvider>
</rad:MyComboBox>
</mx:Application>
希望这能有所帮助。基本上,在做出更改之前,我需要一个活动。我想现在就这样吧,我想 我确实修改了您的代码,使其在发生更改时触发预更改事件,停止事件传播,并且只有在真正进行更改后才触发更改事件
感谢您的及时回答。最简单的方法是在组合框的Event.CHANGE中添加两个侦听器,然后将更改之前要触发的处理程序的优先级设置为负值。例如:
myComboBox.addEventListener(Event.CHANGE, preChange, false, -100);
myComboBox.addEventListener(Event.CHANGE, postChange, false, 100);
事件调度的顺序:
标签什么时候开始有图像了?凉的