在flash程序中使用快捷键,就可能会和文本输入引起冲突,主要是用单个字母或者shift+字母键作为快捷键时的冲突,比如当设置字母a为一个功能的快捷方法,但是当你进行文本输入的时候假如输入a就会同时引发事件,当然这不是我们所希望的,下面的两种方法来避免这种情况的出现:
方法一:
keylis = new Object();
Key.addListener(keylis);
keylis.onKeyDown = function() {
var pathArr = Selection.getFocus().split(".");
var foucs = _root;
for (var i = 1; i<pathArr.length; i++) {
foucs = foucs[pathArr[i]];
}
if (foucs instanceof TextField && fouse.type == "input") {
trace(foucs);
return;
}
if(Key.isDown(65))
{
//run...
}
}
方法二:
//这种方法比较简单,但不能判定焦点文本的类型为输入类型
if(Selection.getCaretIndex() >=0)
{
return;
}