问题描述
|
我正在尝试找出一种方法,使按钮在单击时基本上触发右箭头键。如果有人可以通过代码帮助我,我将不胜感激!非常感谢。
解决方法
一般来说,这是一个坏主意。
如果希望鼠标按钮执行与键相同的操作,则应将代码重构为共享方法:
function doSomething(){
// ...
}
function mouseClick(){
doSomething();
}
function keyPress(){
doSomething();
}
,如果您设置的击键管理与我类似,则应该很简单。
我基本上只是有一个带有数组的类,该数组基于按下/释放键的“ 1”将给定索引设置为true / false。
细分:
当我按ASCII或keyCode值为65的\“ a \”时,array[65]
设置为true
。当我释放\“ a \”键时,array[65]
设置为false
。
然后,我只有一个函数,它返回一个表示被按下的键的布尔值。这是此类的一个简单示例:
package
{
import flash.display.Stage;
import flash.events.KeyboardEvent;
public class Keystrokes
{
public static var keys:Array = [];
public static function init(stg:Stage):void
{
stg.addEventListener(KeyboardEvent.KEY_DOWN,_keyDown);
stg.addEventListener(KeyboardEvent.KEY_UP,_keyUp);
}
private static function _keyDown(e:KeyboardEvent):void
{
keys[e.keyCode] = true;
}
private static function _keyUp(e:KeyboardEvent):void
{
delete keys[e.keyCode];
}
public static function keyIsDown(...ascii):Boolean
{
var i:uint;
for each(i in ascii)
{
if(keys[i]) return true;
}
return false;
}
}
}
现在,所有这些您基本上可以做到:
Keystrokes.keys[keycode_for_right_arrow] = true;
当您单击鼠标时,并在松开鼠标键时显示ѭ5。