Интересно, как достичь этого в Flex.Flex Script and Event Question
В принципе, я разрешил перетаскивание некоторых элементов управления списком.
<mx:DataGrid id="dg1" width="100%" height="100%" dataProvider="{xmllcData}"
dropEnabled="true" dragDrop="dg1_dragDropHandler(event)">
</mx:DataGrid>
В функции dg1_dragDropHandler случае, у меня есть следующие коды:
private function dg1_dragDropHandler(evt:DragEvent):void
{
// Perform some actions here...
// .......
// Show Message to Confirm.
Alert.show('Proceed?', 'Title', Alert.YES | Alert.NO, null, handleAlert, null, Alert.YES);
}
private function handleAlert(evt:CloseEvent):void
{
if (evt.detail == Alert.YES)
{
// Perform the functions as necessary
}
else
{
// Execute the script to prevent the dropping of the object.
// How can I call the DragEvent.preventDefault(); function from here?
}
}
В приведенных выше кодов, я хочу, чтобы вызвать preventDefault() на функцию alertHandler после другие скрипты после вызова события Alert.show в dg1_dragDropHandler будут выполняться одновременно с alert.show.
Как я могу ссылаться на DragEvent события dg1_dragDropHandler из события alertHandler?
ПредотвращениеDefault предназначено для предотвращения операции dragDrop, если условие не выполнено. Как вы можете видеть, я установил ограничительную функцию Alert.show для подтверждения от пользователя, если продолжить операцию * несмотря на * условие. Если пользователь нажмет на NO, тогда я не знаю, как alertHandler сможет обрабатывать функцию preventDefault, доступную только для dragEvent. – Angelo
То, что я говорю, это то, что я ожидаю, что к тому моменту, когда вы нажмете «НЕТ» в оповещении, уже слишком поздно. Проблема в том, что я считаю, что вы имеете дело с несколькими стеками вызовов. Пока отображается диалоговое окно с предупреждением, я ожидаю, что ваши другие стеки вызовов будут выполняться и завершить событие. Возможно, что вы хотите сделать, разрешите падение, но если выбрано «НЕТ», вы сразу же удалите падение. – Glenn
Да, вы совершенно правы. Остальные стеки вызовов выполняются немедленно. Если выбрано значение «Нет», то предотвратите падение, которое выполняется путем вызова функции preventDefault события. Но если бы вы могли продолжать только то же самое из alertHandler, как бы вы ссылались на dragEvent? – Angelo