2010-12-13 13 views
0

Si vous avez un contrôle DateChooser à côté d'un contrôle de texte et que vous avez cliqué avec la souris pour sélectionner le texte, continuez à maintenir le bouton de la souris enfoncé le contrôle datechooser, la valeur selectedDate change à la date que vous survolez. J'ai des utilisateurs qui ont des problèmes avec cela et cela arrive involontairement à cause de la proximité des deux contrôles. Je ne peux pas trouver un moyen d'arrêter cet effet. Fondamentalement, je voudrais que la date sélectionnée ne change que si l'utilisateur clique réellement sur le contrôle du calendrier, c'est-à-dire. mouseDown ou cliquez sur. Les fonctions d'appel dans ces événements ne modifient pas ce comportement. J'ai besoin d'un moyen de désactiver le contrôle de changer la date sur le mouseUpEvent (je pense).Flex 3 DateChooser Control - Changements de sélection de date sur l'événement MouseUp

Répondre

2

C'est un bug irritant car vous ne pouvez pas annuler les événements sur le DateChooser. Voici une solution possible:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600"> 
    <mx:Script> 
     <![CDATA[ 
      private function preventDateChooserBug(e:MouseEvent):void { 
       //set the mouseChildren property to false, not enabled because 
       //that could cause an irritating flickering when clicking the 
       //text input box for focus 
       dtc.mouseChildren = false; 

       //add the event listener to stage so we get the mouse up event even 
       //outside of the text input control 
       stage.addEventListener(MouseEvent.MOUSE_UP, function(e2:MouseEvent):void { 
        dtc.mouseChildren = true; 
       }); 

      } 
     ]]> 
    </mx:Script> 
    <mx:TextInput x="10" y="10" id="txt" mouseDown="preventDateChooserBug(event)" /> 
    <mx:DateChooser x="178" y="10" id="dtc" /> 
</mx:Application> 
+0

Brilliant! Cela l'a arrangé et j'ai appris quelque chose. Je vous remercie! – cheetoResearch