Je me demande comment y parvenir dans Flex.Script Flex et événement Question
Fondamentalement, j'ai activé le glisser-déposer dans certains de mes contrôles de liste.
<mx:DataGrid id="dg1" width="100%" height="100%" dataProvider="{xmllcData}"
dropEnabled="true" dragDrop="dg1_dragDropHandler(event)">
</mx:DataGrid>
Dans la fonction événement dg1_dragDropHandler, je les codes suivants:
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?
}
}
Dans les codes ci-dessus, je veux appeler le preventDefault() sur la fonction alertHandler depuis la D'autres scripts après l'appel de l'événement Alert.show dans l'événement dg1_dragDropHandler seraient exécutés simultanément avec alert.show.
Comment serais-je capable de référencer l'événement DragEvent de l'événement dg1_dragDropHandler de l'événement alertHandler?
preventDefault est destiné à empêcher l'opération dragDrop si la condition n'est pas remplie. Comme vous pouvez le voir, j'ai placé une fonction limitative Alert.show pour confirmer auprès de l'utilisateur si l'opération doit continuer * malgré la condition. Si l'utilisateur clique sur NO, je n'ai aucune idée de la façon dont alertHandler serait capable de gérer la fonction preventDefault qui n'est disponible que pour dragEvent. – Angelo
Ce que je dis est que je m'attends à ce que lorsque vous cliquez sur "NON" sur l'alerte, il est déjà trop tard. Le problème est, je crois que vous avez affaire à plusieurs piles d'appels. Pendant que la boîte de dialogue d'alerte s'affiche, je m'attends à ce que vos autres piles d'appels s'exécutent et terminent l'événement. Peut-être que ce que vous voulez faire autoriser la baisse, mais si "NON" est sélectionné, vous supprimez la baisse immédiatement. – Glenn
Oui, vous avez raison. Les autres piles d'appels sont exécutées immédiatement. Si la case No est sélectionnée, empêchez la suppression en appelant preventDefault de l'événement. Mais si vous pouviez seulement continuer la même chose à partir de alertHandler, comment référeriez-vous le dragEvent alors? – Angelo