如何防止 CheckBox 或 ToggleButtonBase 发生变化?
How do you prevent a CheckBox or ToggleButtonBase from changing?
我有一个 Spark CheckBox,我试图防止它在单击时发生变化。在大多数 Flex 组件中,都有一个 CHANGING 事件,您可以防止默认。我只找到了一个 CHANGE 事件,如果我监听该事件然后设置 checkbox.selected = !checkbox.selected;它只是再次发送更改并重新选中复选框。
我已经为鼠标单击事件添加了一个事件侦听器,这似乎有效,但有一个闪烁,您可以看到它被选中的瞬间。
IEventDispatcher(checkbox).addEventListener(MouseEvent.CLICK, function(e:Event):void {
trace("click");
ToggleButtonBase(target).selected = !ToggleButtonBase(target).selected;
e.stopImmediatePropagation();
e.preventDefault();
});
使用这个,如果我追踪事件,它是:
- 改变
- 改变
- 点击
不理想,但似乎有效。
您可以只禁用此复选框的任何鼠标事件,并且仍然可以使用 selected=true:
以编程方式更改选择
<s:CheckBox id="myCheckbox"
mouseChildren="false"
mouseEnabled="false"/>
我有一个 Spark CheckBox,我试图防止它在单击时发生变化。在大多数 Flex 组件中,都有一个 CHANGING 事件,您可以防止默认。我只找到了一个 CHANGE 事件,如果我监听该事件然后设置 checkbox.selected = !checkbox.selected;它只是再次发送更改并重新选中复选框。
我已经为鼠标单击事件添加了一个事件侦听器,这似乎有效,但有一个闪烁,您可以看到它被选中的瞬间。
IEventDispatcher(checkbox).addEventListener(MouseEvent.CLICK, function(e:Event):void {
trace("click");
ToggleButtonBase(target).selected = !ToggleButtonBase(target).selected;
e.stopImmediatePropagation();
e.preventDefault();
});
使用这个,如果我追踪事件,它是:
- 改变
- 改变
- 点击
不理想,但似乎有效。
您可以只禁用此复选框的任何鼠标事件,并且仍然可以使用 selected=true:
以编程方式更改选择<s:CheckBox id="myCheckbox"
mouseChildren="false"
mouseEnabled="false"/>