Flash 卸下闪存滑块组件上的键盘控制
默认情况下,可以使用键盘操纵闪存滑块组件。有没有办法禁用此行为,以便用户只能用鼠标拖动滑块组件?添加:Flash 卸下闪存滑块组件上的键盘控制,flash,actionscript-3,flash-v3-components,Flash,Actionscript 3,Flash V3 Components,默认情况下,可以使用键盘操纵闪存滑块组件。有没有办法禁用此行为,以便用户只能用鼠标拖动滑块组件?添加: stage.focus = stage; 到SlideEvent.CHANGE处理程序 这会将焦点转移到舞台上,从而禁用滑块上的键盘活动。添加: stage.focus = stage; 到SlideEvent.CHANGE处理程序 这会将焦点转移到舞台上,从而禁用滑块上的键盘活动。简单,只需将“slider”对象的“focusEnabled”公共属性设置为false: import
stage.focus = stage;
到SlideEvent.CHANGE处理程序
这会将焦点转移到舞台上,从而禁用滑块上的键盘活动。添加:
stage.focus = stage;
到SlideEvent.CHANGE处理程序
这会将焦点转移到舞台上,从而禁用滑块上的键盘活动。简单,只需将“slider”对象的“focusEnabled”公共属性设置为false:
import fl.controls.Slider;
var slider:Slider = new Slider();
addChild(slider);
slider.focusEnabled = false;
这将表明用户单击“Slider”对象后,“Slider”对象无法接收焦点,因此不允许键盘与其交互。简单,只需将“Slider”对象的“focusEnabled”公共属性设置为false:
import fl.controls.Slider;
var slider:Slider = new Slider();
addChild(slider);
slider.focusEnabled = false;
这将表明“滑块”对象在用户单击后无法接收焦点,因此不允许键盘与其交互。正如@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){}
}
}
}
}
keyDownHandler继承自fl.core.ui组件和Slider.com,因为它处理键盘更新
正如@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){}
}
}
}
}
keyDownHandler继承自fl.core.ui组件和Slider.com,因为它处理键盘更新
嗯