LANGUAGE TRANSLATION

12 AEMN


NHÀ MÌNH ONLINE !

Tiến Quốc
Tố Uyên
Thuý Hằng
Linh Sương
Vũ Mai
Nguyễn Duyên
Chi Uyên
Minh Anh
Châu Tuấn
Thành Nhân
Chí Thành
Đức Thiệu

QT của thầy Văn Ngãi

danh mục nội dung web mmtt

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • GD

    XIN KÍNH CHÀO

    2 khách và 0 thành viên

    111

    Gốc > TRI THỨC CUỘC SỐNG - CHIA SẺ KINH NGHIỆM > LẬP TRÌNH FLASH >

    Bài 53: Mã phím và mã ASCII

     

    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

    Phím

    Phím

    A

    65

    - (keypad)

    109

    B

    66

    . (keypad)

    110

    C

    67

    / (keypad)

    111

    D

    68

    F1

    112

    E

    69

    F2

    113

    F

    70

    F3

    114

    G

    71

    F4

    115

    H

    72

    F5

    116

    I

    73

    F6

    117

    J

    74

    F7

    118

    K

    75

    F8

    119

    L

    76

    F9

    120

    M

    77

    F10

    121

    N

    78

    F11

    122

    O

    79

    F12

    123

    P

    80

    F13

    124

    Q

    81

    F14

    125

    R

    82

    F15

    126

    S

    83

    Back space

    8

    T

    84

    Tab

    9

    U

    85

    Clear

    12

    V

    86

    Enter

    13

    W

    87

    Shift

    16

    X

    88

    Ctrl

    17

    Y

    89

    Alt

    18

    Z

    90

    Caps lock

    20

    0

    48

    Esc

    27

    1

    49

    Space bar

    32

    2

    50

    Page up

    33

    3

    51

    Page down

    34

    4

    52

    End

    35

    5

    53

    Home

    36

    6

    54

    Left arrow

    37

    7

    55

    Up arrow

    38

    8

    56

    Right arrow

    39

    9

    57

    Down arrow

    40

    0 (keypad)

    96

    Insert

    45

    1 (keypad)

    97

    Delete

    46

    2 (keypad)

    98

    Help

    47

    3 (keypad)

    99

    Num lock

    144

    4 (keypad)

    100

    ; :

    186

    5 (keypad)

    101

    = +

    187

    6 (keypad)

    102

    - _

    189

    7 (keypad)

    103

    / ?

    191

    8 (keypad)

    104

    ` ~

    192

    9 (keypad)

    105

    [ {

    219

    * (keypad)

    106

    \ |

    220

    + (keypad)

    107

    ] }

    221

    Enter (keypad)

    108

    ' "

    222

    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

    Ký tự

    Ký tự

    Ký tự

    Space

    32

    @

    64

    `

    96

    !

    33

    A

    65

    a

    97

    "

    34

    B

    66

    b

    98

    #

    35

    C

    67

    c

    99

    $

    36

    D

    68

    d

    100

    %

    37

    E

    69

    e

    101

    &

    38

    F

    70

    f

    102

    '

    39

    G

    71

    g

    103

    (

    40

    H

    72

    h

    104

    )

    41

    I

    73

    i

    105

    *

    42

    J

    74

    j

    106

    +

    43

    K

    75

    k

    107

    ,

    44

    L

    76

    l

    108

    -

    45

    M

    77

    m

    109

    .

    46

    N

    78

    n

    110

    /

    47

    O

    79

    o

    111

    0

    48

    P

    80

    p

    112

    1

    49

    Q

    81

    q

    113

    2

    50

    R

    82

    r

    114

    3

    51

    S

    83

    s

    115

    4

    52

    T

    84

    t

    116

    5

    53

    U

    85

    u

    117

    6

    54

    V

    86

    v

    118

    7

    55

    W

    87

    w

    119

    8

    56

    X

    88

    x

    120

    9

    57

    Y

    89

    y

    121

    :

    58

    Z

    90

    z

    122

    ;

    59

    [

    91

    {

    123

    60

    \

    92

    |

    124

    =

    61

    ]

    93

    }

    125

    62

    ^

    94

    ~

    126

    ?

    63

    _

    95

    Delete

    127

    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.

    Đỗ Thanh Dương 

    Nhắn tin cho tác giả
    Trần Thị Thúy Hằng @ 16:50 08/08/2012
    Số lượt xem: 22444
    Số lượt thích: 0 người
     
    Gửi ý kiến