本实例通过我们在文本框中输入字符,每输入一个字符,在文本框下方为分别显示该字符、字符代码值和键控代码值。通过访问键盘事件的 keyCode 和 charCode 属性,以确定按下了哪个键,然后触发其动作。keyCode为键控代码,属性为数值,与键盘的每个键相关,键盘的每个键都有一个数字与其对应。charCode为字符代码,与某个字符集相对应,属性是该键在当前字符集中的数值。(默认字符集是 UTF-8,它支持 ASCII。)
键控代码值与字符代码值之间的有很大的区别,键控代码值表示键盘上的特定键,键盘上同一个键上可以输出的不同字符,但是它们的键控代码相同。例如:键盘上a键可以输入小写a和大写的A,这两个字符的键控代码都是65。字符值表示特定字符,每个字符都有唯一的属于自己的字符代码值,即使是同一个键上输出的不同字符,a的字符值为97,A的字符值为65。
如果你启用了输入法,可能不能正确显示这些数值。
制作过程:
1、在舞台中拖入三个Label实例,分别命名为code、keycode和charcode。
2、调整以上三个实例的大小和位置。
3.输入代码,测试程序。
本实例中,还使用到了TextFormat对象,该类可以对文本进行自定义格式化,提高文本的可读性和观赏性,美化您的课件。我会在后面的文章中,详细介绍该类。
code:
import flash.events.KeyboardEvent;
import flash.text.TextField;
//定义TextField实例
var tf:TextField=new TextField();
addChild(tf);
tf.x = 40;
tf.y = 60;
tf.width = 250;
tf.border = true;
tf.type = "input";
//初始化Label组件
code.text = "字符:";
keycode.text = "键控代码值:";
charcode.text = "字符的数值:";
var format:TextFormat = new TextFormat();
format.font = "Verdana";
format.color = 0x0000FF;
format.size = 25;
format.url = "http://www.flashabc.net";
tf.defaultTextFormat = format;
tf.addEventListener(KeyboardEvent.KEY_DOWN,reportKeyDown);
function reportKeyDown(event:KeyboardEvent):void
{
code.text = "字符:" + String.fromCharCode(event.charCode);
keycode.text = "键控代码值:" + event.keyCode;
charcode.text = "字符的数值:" + event.charCode;
}