Khi thử gán hàm xử lý tình huống onPress cho một thể hiện được tạo ra lúc chạy chương trình, có lẽ bạn thấy hàm onPress thú vị hơn hàm
onMouseDown.
Hàm onPress chỉ được gọi khi người dùng bấm trúng thể hiện. Chắc rằng điều này khiến bạn nghĩ ngay đến việc tạo ra một nút bấm trong chương trình của mình. Quả thực, ta có thể vẽ hình bất kỳ để làm nút bấm. Muốn chương trình làm gì đó khi người dùng bấm nút, chỉ cần định nghĩa hàm onPress thích hợp. Bạn hãy mở tập tin FLA mới trong cửa sổ Flash để thực hiện ý định nêu trên. Trước hết, cần tạo một nhân vật đóng vai nút bấm. Bạn ấn Ctrl+F8 (hoặc chọn Insert > New Symbol). Khi hộp thoại Create New Symbol hiện ra, bạn gõ
Button để đặt tên cho nhân vật mới. Bấm nút Advanced, bạn thấy hộp thoại được mở rộng, bày ra những quy định bổ sung (hình 1). Trong phần Linkage, bạn bật ô duyệt Export for ActionScript. Chắc bạn còn nhớ, nhờ quy định này, Flash sẽ đưa nhân vật đang xét vào tập tin SWF dù cho nhân vật không hiện diện trên sân khấu lúc biên dịch.
Tuy rằng ta định tạo ra nút bấm, bạn đừng chọn Button ở phần Behavior vì lựa chọn đó nhằm tạo ra nút bấm theo cách cũ, tương thích với phiên bản trước của Flash. Bạn cứ giữ nguyên lựa chọn Movie clip.
Bấm OK để đóng hộp thoại Create New Symbol, bạn bắt đầu việc vẽ hình để làm nút bấm. Bạn để ý dấu thập nhỏ trên nền trắng trơn, đó là điểm mốc của nhân vật. Bạn có thể xem đó là góc trên, bên trái của nút bấm. Thử hình dung ta cần làm một ―nút khởi động‖ gì đó màu xanh lá, bạn bấm vào ô Fill Color ở hộp công cụ và chọn màu xanh lá trên bảng màu . Bạn gõ phím R (hoặc chọn Rectangle Tool ), trỏ vào dấu thập, giữ phím trái của chuột, căng ra một hình khung. Hình khung vừa vẽ tự động được tô màu xanh đã chọn.
Ta hãy ghi chữ Start màu đen lên hình khung xanh lá. Bạn bấm vào Fill Color, chọn màu đen, Để ghi chữ, bạn gõ phím T (hoặc chọn Text Tool ), trỏ vào đâu đó gần hình khung xanh lá, căng ra một khung chữ và gõ Start. Bạn ấn
Ctrl+F3 để mở bảng Properties. Trong bảng Properties, bạn chọn Static text (khung chữ tĩnh) trong ô Text Type , điều chỉnh cỡ chữ ở ô Font Size .
Bạn bấm vào đâu đó bên ngoài khung chữ để tỏ ý kết thúc việc ghi chữ, gõ phím V (hoặc chọn Selection Tool ) để lấy công cụ chọn, kéo dòng chữ Start,
đặt lên hình khung xanh lá sao cho cân xứng. Bạn có thể gõ các phím mũi tên nếu cần tinh chỉnh vị trí của dòng chữ Start.
Bạn bấm vào Scene1 để kết thúc việc tạo hình cho nhân vật Button. Muốn biết chắc nhân vật Button đã được tạo ra trong thư viện hay chưa, bạn gõ phím F11 để mở xem bảng Library.
Bạn gõ phím F9 để mở bảng Actions – Frame và viết chương trình (cho khung 1) như sau: ? 1 2 3 4 5 6 7 8 9 10 11 attachMovie("Button", "button1", 1); button1._x = 200; button1._y = 200; button1.onPress = function() { trace("Bạn đã bấm nút."); }
Đoạn mã nêu trên nhằm tạo ra thể hiện button1 của nhân vật Button, quy định vị trí của button1 và định nghĩa hàm onPress của button1. Hàm onPress chỉ làm một việc đơn giản: hiển thị thông báo trong bảng Output.
Ấn Ctrl+Enter để chạy thử, bạn thấy nút bấm của ta hoạt động đúng như dự định: mỗi lần bấm nút đó, thông báo Bạn đã bấm nút xuất hiện trong bảng Output.
được trỏ vào hoặc khi được bấm.
Ta cũng làm được điều đó. Bạn hãy bấm kép vào nút bấm trong bảng Library để bắt đầu chỉnh sửa.
Nếu nút bấm đang ở tình trạng ―được chọn‖, bạn bấm bên ngoài nút để ―thôi chọn‖. Bạn bấm vào khung 1 trong thời tuyến của nút bấm. Trong bảng
Actions – Frame, bạn ghi câu lệnh stop(); cho khung 1. Xong, bạn bấm vào ô có dòng chữ <Frame Label> trong bảng Properties và gõ _up để đặt tên cho khung 1.
Bạn bấm-phải vào khung 2 ở bảng Timeline, chọn Insert Keyframe nhằm tạo ra khung chốt thứ hai. Bạn ghi câu lệnh stop(); và đặt tên _over cho khung 2. Bạn bấm vào hình khung xanh lá, chọn màu xanh sáng hơn (hình 2) ở ô Fill Color .
Tương tự, bạn tạo thêm khung chốt thứ ba, ghi câu lệnh stop(); và đặt tên cho khung 3 là _down. Bạn chọn màu xanh lá đậm cho hình khung và chọn màu vàng cho dòng chữ Start (hình 2).
Ấn Ctrl+Enter để chạy thử, bạn thấy nút Start sáng lên khi được trỏ vào. Bấm nút Start, bạn thấy nó ―chớp‖ một phát, trông thật… điệu nghệ.