2016-02-13 3 views
0

J'ai un Spark CheckBox et j'essaye de l'empêcher de changer lorsqu'on clique dessus. Dans la plupart des composants Flex, il y a un événement CHANGING et vous pouvez empêcher les défauts. Je n'ai trouvé qu'un événement CHANGE et si j'écoute pour cet événement, puis cochez checkbox.selected =! Checkbox.selected; il répartit simplement à nouveau les modifications et la case à cocher est resélectionnée.Comment empêcher un CheckBox ou un ToggleButtonBase de changer?

Répondre

2

Vous pouvez simplement désactiver tous les événements de la souris pour cette case à cocher et serait encore en mesure de changer la sélection par programme avec sélectionné = true:

<s:CheckBox id="myCheckbox" 
      mouseChildren="false" 
      mouseEnabled="false"/> 
0

J'ai ajouté un écouteur d'événement pour un clic de souris et cela semble fonctionner, mais il y a un scintillement où vous pouvez voir qu'il a été sélectionné pour un instant.

IEventDispatcher(checkbox).addEventListener(MouseEvent.CLICK, function(e:Event):void { 
     trace("click"); 
     ToggleButtonBase(target).selected = !ToggleButtonBase(target).selected; 
     e.stopImmediatePropagation(); 
     e.preventDefault(); 
}); 

Avec cela, si je trace les événements, il est:

  • changement
  • changement
  • cliquez

Pas idéal, mais il semble fonctionner.