Mã phím và mã ASCII [Hoàng Ngọc Giao] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Với chương trình đã viết | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
obj = new Object();
obj.onKeyDown = function() {
trace("Bạn ấn phím " + Key.getCode());
}
Key.addListener(obj);
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bạn biết được mã số của phím được ấn nhờ thông báo ở bảng Output. Khi chạy thử chương trình, bạn thấy rõ mỗi phím của bàn phím đều có mã tương ứng, kể cả các phím đặc biệt như Ctrl, Shift, Back space, Caps lock,... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bảng 1 liệt kê các phím và mã phím tương ứng để bạn tham khảo, bao gồm cả các phím của bộ phím số (numeric keypad) ở bên phải bàn phím. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bảng 1 - Mã phím | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Khi dùng hàm Key.getCode để đọc mã phím được ấn, bạn không phân biệt được ký tự thường với ký tự hoa (chẳng hạn phân biệt a với A), phân biệt hai ký tự trên cùng một phím (chẳng hạn phân biệt dấu chấm phẩy ; với dấu hai chấm :). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Khi có yêu cầu nhận biết ký tự được nhập, bạn cần đọc mã ký tự theo chuẩn ASCII (American Standard Code for Information Interchange) thay vì đọc mã phím. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bạn sửa lại chương trình hiện có như sau: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
obj = new Object();
obj.onKeyDown = function() {
trace("Bạn gõ ký tự " + Key.getAscii());
}
Key.addListener(obj);
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Chạy chương trình và thử gõ phím A trên bàn phím, bạn nhận được thông báo ở bảng Output: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bạn gõ ký tự 97 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
97 là mã ASCII của ký tự a. Khi giữ phím Shift và gõ phím A trên bàn phím, bạn thấy thông báo: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bạn gõ ký tự 0
Bạn gõ ký tự 65
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Phím Shift không có mã ASCII tương ứng, do vậy hàm Key.getAscii trả về trị 0. Khi gõ phím A với phím Shift đang được ấn, bạn tạo ra ký tự A (ký tự hoa). 65 là mã của ký tự A. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hàm Key.getAscii cũng trả về trị 0 đối với phím Ctrl vì phím Ctrl không tạo ra ký tự. Đối với phím Space (thanh ngang), hàm Key.getAscii trả về trị 32, là mã của ký tự trống. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bảng 2 liệt kê những ký tự thường dùng và mã ASCII tương ứng để bạn tham khảo. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bảng 2 - Mã ASCII | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nếu bạn quan tâm đến các ký tự a, b, c và muốn thông báo rõ ràng ký tự được gõ (thay vì thông báo mã ASCII) khi người dùng gõ a, b hoặc c, bạn bổ sung chương trình như sau: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
keys = [];
keys[97] = "a";
keys[98] = "b";
keys[99] = "c";
obj = new Object();
obj.onKeyDown = function() {
var ascii = Key.getAscii();
if(keys[ascii] != null)
trace("Bạn gõ ký tự " + keys[ascii]);
else
trace("Bạn gõ ký tự " + ascii);
}
Key.addListener(obj);
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Câu lệnh keys = []; nhằm tạo ra dãy (đối tượng thuộc lớp Array) mang tên keys. Đó là cách viết tương đương với cách viết keys = new Array(); mà bạn đã quen thuộc. Nếu không tìm thấy ký tự tương ứng với mã ASCII đã cho trong dãy keys, chương trình chỉ đơn giản thông báo mã ASCII của ký tự được gõ. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Trong trường hợp muốn theo dõi trạng thái của phím bật/tắt trên bàn phím (phím Caps lock ứng với mã số 20 và phím Num lock ứng với mã số 144), bạn dùng hàm isToggled của lớp Key. Bạn sửa chương trình như sau: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
obj = new Object();
obj.onKeyDown = function() {
if(Key.isToggled(20))
trace("Đèn Caps lock đang bật.");
else
trace("Đèn Caps lock đang tắt.");
if(Key.isToggled(144))
trace("Đèn Num lock đang bật.");
else
trace("Đèn Num lock đang tắt.");
}
Key.addListener(obj);
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Khi trao cho hàm Key.isToggled mã số của phím Cap lock (20) hoặc mã số của phím Num lock (144), hàm đó cho bạn trị true nếu phím đang xét ở trạng thái bật và cho trị false trong trường hợp ngược lại. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Chạy chương trình, thử bật hoặc tắt phím Caps lock và Num lock, bạn thấy rõ hiệu lực của hàm Key.isToggled. |
Tambahkan Komentar