默认情况下,可以用键盘操作闪光滑块组件。有没有办法禁用这种行为,以便用户只能用鼠标拖动滑块组件?删除闪光滑块组件上的键盘控件
0
A
回答
2
简单,只需设置“focusEnabled”的“滑块”对象的公共属性设置为false:
import fl.controls.Slider;
var slider:Slider = new Slider();
addChild(slider);
slider.focusEnabled = false;
这将表明,它在用户点击后“滑块”对象不能收到焦点因此不允许键盘与之交互。
0
地址:
stage.focus = stage;
到SliderEvent.CHANGE处理
这将重心转移到舞台,因此在滑盖关闭键盘活动。
1
正如@Taurayi和@Grant所提到的,改变焦点将是简单。
这里是做有些相同的方式肮脏:
slider.addEventListener(FocusEvent.FOCUS_IN, onFocus);
function onFocus(event:FocusEvent):void {
stage.focus = null;
}
虽然slider.focusEnabled = false;
要简单得多。
这里有一个更脏的方式:
import flash.sampler.getMemberNames;
removeKeyboardListeners(slider);
function removeKeyboardListeners(dispatcher:EventDispatcher):void{
var members:Object=getMemberNames(dispatcher);
for each (var name:QName in members) {
if (name.localName=="listeners") {
var numListeners:int = dispatcher[name].length;
for(var i:int = 0 ; i < numListeners ; i++){
try{
try{
if(dispatcher[name][i]){
dispatcher.removeEventListener(KeyboardEvent.KEY_DOWN,dispatcher[name][i]);
dispatcher.removeEventListener(KeyboardEvent.KEY_UP,dispatcher[name][i]);
}
}catch(e:Error){trace(e.message);}
}catch(e:ReferenceError){}
}
}
}
}
如果你想有一个漫长的,但不肮脏的方式,简单地继承fl.controls.Slider,并设置为类库中的滑块的象征。在子类中你可以这样:
override protected function keyDownHandler(event:KeyboardEvent):void {}
keyDownHandler从fl.core.UIComponent继承和Slider.as它处理的键盘更新。
HTH
相关问题
- 1. 闪光范围滑块组件
- 2. 闪光滑块无反应
- 3. 闪光滑块或什么?
- 4. 闪光:自动/无限/水平滑块
- 5. Jquery滑块控件
- 6. 闪光动作脚本按键盘信
- 7. 拍摄闪光灯键盘事件“转义”
- 8. 软件键盘删除浏览
- 9. 列表控件在删除键上删除行按
- 10. Python键盘控件
- 11. 如何删除键盘上的dataGridView行删除键按? c#
- 12. UISlider删除滑块
- 13. LWUIT中的滑块控件
- 14. Android中的滑块控件
- 15. ios删除键盘
- 16. Winform,TableLayoutPanel在动态控件上闪烁添加/删除?
- 17. ExtJS 3.4滑块控件
- 18. 自定义滑块控件
- 19. 双滑块控件.net
- 20. jquery滑块控件问题
- 21. WPF滑块控件(NullReferenceException)
- 22. 在Next/Prev控件单击事件中从bxSlider中删除一个滑块
- 23. 删除UIWebView的键盘
- 24. 平滑流支持闪光?
- 25. 键盘快捷键删除C#代码文件中的空行
- 26. 删除字母上部键盘
- 27. 删除控件
- 28. .NET Winform键盘控件
- 29. 响应光滑滑块
- 30. 滚动“RepeatBox”控件不光滑
太棒了,谢谢 – mheavers 2011-04-07 19:53:56