2016-02-13 1 views
0

У меня есть Spark CheckBox, и я пытаюсь предотвратить его изменение при нажатии. В большинстве компонентов Flex есть событие CHANGING, и вы можете предотвратить по умолчанию. Я только нашел событие CHANGE, и если я слушаю это событие, а затем установите checkbox.selected =! Checkbox.selected; он просто перенаправляет изменения, и флажок переустанавливается.Как вы не можете изменить CheckBox или ToggleButtonBase?

ответ

2

Вы можете просто отключить все события мыши для этого флажка, и будет по-прежнему иметь возможность изменить выбор программно с выбранным = верно:

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

Я добавил слушателя событий для события щелчка мыши, и это похоже на работу, но есть мерцание, где вы можете видеть, что он был выбран на мгновение.

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

Используя это, если я отслеживать события, это:

  • изменение
  • изменение
  • нажмите

Не идеально, но это, кажется, работает.