2

我正在使用 Flash AS2(没有其他选项)来获取用户键入的字母。

似乎在 Google Chrome 中,我得到的 Ascii 代码与平时不同。

我在激活“Caps Lock”后输入“P”进行测试。我正在跟踪 Key.getCode() 和 Key.getAscii() 返回的内容。

在 Firefox 或 IE 甚至独立播放器中:

  • 大写锁定 => Key.getCode() : 80 ; Key.getAscii() : 80
  • 大写锁定关闭 => Key.getCode() : 80 ; Key.getAscii() : 112

在 Chrome 中,Caps Lock 似乎总是关闭:

  • 大写锁定 => Key.getCode() : 80 ; Key.getAscii() : 112
  • 大写锁定关闭 => Key.getCode() : 80 ; Key.getAscii() : 112

结果,我无法在 Chrome 上打开或关闭 Caps Lock ......

有没有人见过这个问题?


编辑:补充测试:

请注意,测试是使用法语 AZERTY 键盘进行的

谷歌浏览器

1

  • pad => Key.getCode()=97 -> a ; Key.getAscii()=49 -> 1
  • 正常 => Key.getCode()=49 -> 1 ; Key.getAscii()=49 -> 1
  • shift => Key.getCode()=49 -> 1 ; Key.getAscii()=33 -> !
  • 大写 => Key.getCode()=49 -> 1 ; Key.getAscii()=49 -> 1

一个

  • 正常 => Key.getCode()=65 -> A ; Key.getAscii()=97 -> 一个
  • shift => Key.getCode()=65 -> A ; Key.getAscii()=65 -> A
  • 大写 => Key.getCode()=65 -> A ; Key.getAscii()=97 -> 一个

其他

1

  • pad => Key.getCode()=97 -> a ; Key.getAscii()=49 -> 1
  • 正常 => Key.getCode()=49 -> 1 ; Key.getAscii()=38 -> &
  • shift => Key.getCode()=49 -> 1 ; Key.getAscii()=38 -> &
  • 大写 => Key.getCode()=49 -> 1 ; Key.getAscii()=38 -> &

一个

  • 正常 => Key.getCode()=65 -> A ; Key.getAscii()=97 -> 一个
  • shift => Key.getCode()=65 -> A ; Key.getAscii()=65 -> A
  • 大写 => Key.getCode()=65 -> A ; Key.getAscii()=65 -> A
4

1 回答 1

0

尝试根据 Caps Lock 键isToggled()与否来编写代码。

您可以添加32到任何大写字母以获得其小写匹配(或使用String.toLowerCase()),您可以从任何小写字母中减去32以获得大写匹配(或使用String.toUpperCase())。

//this code would change a whole string, but you can 
//do it with individually entered characters
if(Key.isToggled(Key.CAPSLOCK)){
    String.fromCharCode(Key.getCode()-32);
}else{
    String.fromCharCode(Key.getCode());
}
于 2013-04-17T02:30:48.900 回答