AS2 getAscii没有在Google Chrome中获得Caps Lock

时间:2013-04-16 15:47:52

标签: flash google-chrome actionscript keyboard actionscript-2

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

似乎在谷歌浏览器中,我得到的Ascii代码与平时不同。

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

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

  • 大写锁定=> Key.getCode():80; Key.getAscii():80
  • Caps Lock off => Key.getCode():80; Key.getAscii():112

在Chrome中,似乎Caps Lock始终处于关闭状态:

  • 大写锁定=> Key.getCode():80; Key.getAscii():112
  • Caps Lock off => Key.getCode():80; Key.getAscii():112

因此,如果在Chrome浏览器上开启或关闭Caps Lock,我无法获得...

之前有没有人见过这个问题?


编辑:补充测试:

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

谷歌浏览器

1

  • pad => Key.getCode()= 97 - >一个 ; Key.getAscii()= 49 - > 1
  • normal => Key.getCode()= 49 - > 1; Key.getAscii()= 49 - > 1
  • shift => Key.getCode()= 49 - > 1; Key.getAscii()= 33 - > !
  • caps => Key.getCode()= 49 - > 1; Key.getAscii()= 49 - > 1

  • normal => Key.getCode()= 65 - >一个 ; Key.getAscii()= 97 - >一个
  • shift => Key.getCode()= 65 - >一个 ; Key.getAscii()= 65 - > A
  • caps => Key.getCode()= 65 - >一个 ; Key.getAscii()= 97 - >一个

其他

1

  • pad => Key.getCode()= 97 - >一个 ; Key.getAscii()= 49 - > 1
  • normal => Key.getCode()= 49 - > 1; Key.getAscii()= 38 - > &安培;
  • shift => Key.getCode()= 49 - > 1; Key.getAscii()= 38 - > &安培;
  • caps => Key.getCode()= 49 - > 1; Key.getAscii()= 38 - > &安培;

  • normal => Key.getCode()= 65 - >一个 ; Key.getAscii()= 97 - >一个
  • shift => Key.getCode()= 65 - >一个 ; Key.getAscii()= 65 - > A
  • caps => Key.getCode()= 65 - >一个 ; Key.getAscii()= 65 - > A

1 个答案:

答案 0 :(得分:0)

根据大写锁定键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());
}