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?
0
A
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.