Đáp ứng tới sự kiện

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG EXTENSIONS TRÊN MOZILA FIREFOX (Trang 32 - 33)

7. Sự kiện và kịch bản trong XUL

7.1 Đáp ứng tới sự kiện

Kịch bản sẽ chứa đựng mã trả lời tới nhiều sự kiện thúc đẩy bởi người dụng, hoặc những tình trạng khác. Có khoảng 30 hoặc những sự kiện khác nhău có thểđược điều khiển bởi vài cách khác nhău. Một sự kiện tiêu biểu là người dùng nhấn chuột hoặc nhấn vào một phím. Mỗi phần tử XUL có khả năng thúc đẩy những sự kiện nhất định trong những tình trạng khác nhau. Vài sự kiện đợc thúc đẩy chỉ bởi những phần tử nhất định.

Mỗi sự kiện có một tên, ví dụ: “mouseover” là tên mà sự kiện người dùng di chuyển chuột qua một phần tử giao diện, XUL sử dụng cùng cơ chế xử lý được định nghĩa trong DOM event. Khi một hành động được kích hoạt, giống như là di chuyển chuột, một đối tượng được tạo ra đáp ứng lại kiểu sự kiện đó. Nhiều thuộc tính là tập hợp những đối tượng sự kiện như vị trí của con trỏ chuột, phím được nhấn,…

Các giai đoạn sự kiện được gửi tới XUL:

- Trong pha hành động “tóm” sự kiện, đầu tiên sự kiện được gửi tới cửa sổ

window, său đó gửi tới tài liệu document, theo phần tử gốc XUL đi qua tới nơi mà phần tử phát sinh sự kiện.

- Trong pha đích, sự kiện được gửi cho phần tử XUL đích.

- Trong pha “nổi bọt”, sự kiện được gửi trở lại lên trên qua mỗi phần tử cho

đến khi quay trở lại cửa sổ window.

Bạn có thểđáp ứng một sự kiện trong quá trình “tóm” sự kiện hoặc trong quá trình “nổi bọt”. Một khi sự kiện kết thúc phát sinh, một vài hành động mặc định sẽ xảy ra, cái mà

được xây dựng trong hành vi của phần tử.

Ví dụ: khi mouse lướt tơi một button nằm trong một box, một sự kiện “mousemove” phát sinh, và gửi đầu tiên tới window, tới document và tới box. Hoàn thành pha “tóm” sự kiện. Tiếp theo, sự kiện “mouseover” sẽđược gửi lại button. Kết thúc, pha “nổi bọt” gây ra sự

kiện sẽđược gửi tói box, document, và cửa sổ windown. Pha “nổi bọt” thực chất là đảo ngược của pha hành động bắt giữ sự kiện.

Bạn có thể gắn những người nghe “listener” tới mỗi phần tử “lắng nghe” những sự kiện trong thời gian mỗi bước lan truyền sự kiện. Vì một sự kiện được đi qua cho tất cả các phần tử phía trên, bạn có thể gắn một “listener” tới một phần tử đặc biệt hoặc tới một phần tử cao hơn trong cây phân cấp. Do đó, một sự kiện gắn cho một phần tử cao hơn trong cây phân cấp sẽ nhận thông báo của tất cả các phần tử bên trong nó, tron khi một sự

kiện được gán liền với nút chỉ nhận được những thông báo gắn liền với nút đó. Điều này hữu dụng khi có một vài phần tử bạn muốn điều khiển giống nhău hoặc có mã tương tự.

Sự kiện chung nhất được sử dụng là “command”. Sự kiện command được kích hoạt khi một người dùng kích hoạt một phần tử, ví dụ như nhấn một nút button, thay đổi một checkbox, hoặc lựa chọn một biểu tượng từ menu. Sự kiện command là một sự kiện hữu ích một khi nó tựđộng điều khiển những cách kích hoạt những phần tủ khác nhău. Một sự kiện command được kích hoạt bất chấp người dùng sử dụng button hay mouse.

Có hai cách để gán một người lắng nghe sự kiện tới một phần tử. trước hết, bằng cách sử

dụng thuộc tính với kịch bản với những giá trị của nó. Thứ hai, bằng cách gọi hàm addEventListener tới phần tửđó. Trước đây, có thểđiều khiển sự kiện tại bất kỳ pha nào và có thể điều khiển để gán nhiều lắng nghe “listener” tới một phần tử. sử dụng mẫu thuộc tính “attribute” là chuẩn cho hầu hết sự kiện, sẽđược trình bày dưới đây.

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG EXTENSIONS TRÊN MOZILA FIREFOX (Trang 32 - 33)