Bạn gõ phím F9 để mở bảng Actions, viết hai hàm xử lý tình huống cho hình vuông được chọn như sau: onClipEventload { step = 10; } onClipEvententerFrame { _rotation += step; } Trong đó, h[r]
Trang 1Thuộc tính của thể hiện [Hoàng Ngọc Giao]
Khi chơi đùa với những quả banh (các thể hiện của nhân vật Ball), bạn đã biết đến các biến có sẵn bên trong từng quả banh, cho biết trạng thái của quả banh: _x, _y, _xscale, _yscale, _visible Các biến như vậy
gọi là các thuộc tính (property) của thể hiện Không giống như biến do bạn tự tạo ra (như biến step cho quả banh
màu đỏ), khi bạn thay đổi một thuộc tính của thể hiện nào, trạng thái của thể hiện đó tự động thay đổi Chẳng hạn, khi gán trị false cho biến _visible của quả banh, quả banh lập tức biến mất
Để tìm hiểu thêm các thuộc tính khác của thể hiện, bạn nên tạo nhân vật mới Lần này ta vẽ hình vuông để "thay đổi
không khí" Trước hết, bạn bấm kép vào tên lớp Layer 2 trong bảng Timeline, gõ Balls, rồi gõ Enter Làm như vậy
để đổi tên lớp thành Balls, ngụ ý rằng lớp đang xét là lớp dành cho các quả banh
Bạn hãy tạo lớp mới dành cho các hình vuông Bạn bấm nút "tạo lớp mới" (góc dưới, bên trái bảng Timeline),
bấm kép vào tên lớp mới Layer 3 và gõ Squares Để tập trung chú ý vào các hình vuông sắp tạo ra, bạn cho các quả
banh biến mất bằng cách bấm vào dấu chấm của hàng biểu thị lớp Balls trong bảng Timeline, ở cột có hình con mắt
Các quả banh chỉ được giấu đi để đỡ vướng víu cho bạn khi làm việc, chúng vẫn "góp mặt" bình thường khi bạn chạy chương trình
Bạn vẽ hình vuông bằng cách chọn công cụ Rectangle ở hộp công cụ, trỏ vào đâu đó trên sân khấu, giữ phím Shift và giữ phím trái của chuột, kéo chuột qua phải, xuống dưới Nhờ bạn giữ phím Shift, hình khung được vẽ ra là hình vuông Bạn nên tô màu cho hình vuông khác với các quả banh, màu xanh lá chẳng hạn (hình 1)
Bạn bấm vào công cụ chọn , bấm vào hình vuông xanh lá để chọn và gõ phím F8 để chuyển hình được chọn
thành nhân vật Hộp thoại Convert to Symbol hiện ra Bạn gõ Square để đặt tên cho nhân vật mới (hình 2) Ở phần
Registration trong hộp thoại, bạn thấy điểm mốc nằm ở tâm nhân vật theo mặc định Không cần thay đổi điểm mốc,
bạn gõ Enter Hình vuông vừa vẽ tạo nên nhân vật Square Hình vuông trên sân khấu trở thành thể hiện của nhân vật Square
Trang 2Hình vuông xanh lá đang ở tình trạng "được chọn" Bạn gõ phím F9 để mở bảng Actions, viết hai hàm xử lý tình
huống cho hình vuông được chọn như sau:
onClipEvent(load) {
step = 10;
}
onClipEvent(enterFrame) {
_rotation += step;
}
Trong đó, hàm xử lý tình huống khởi động tạo ra biến step chứa trị số 10, hàm xử lý tình huống chuyển khung cộng biến step vào thuộc tính _rotation của hình vuông Nhờ vậy, mỗi lần chuyển khung, góc quay của hình vuông lại tăng thêm 10 Bạn chú ý, biến step ta dùng ở đây không phải là biến step đã được dùng cho quả banh
màu đỏ Hai biến step tuy cùng tên nhưng có phạm vi (scope) khác nhau, không có "dây mơ rễ má" gì hết.
Ấn Ctrl+Enter để chạy chương trình, bạn thấy hình vuông quay đều do góc quay của nó "tà tà" tăng lên mỗi lần
chuyển khung "Nếu cứ để hình vuông quay hoài hoài, lẽ nào góc quay sẽ tăng đến vô cùng?" Bạn yên tâm, thực ra
góc quay của hình vuông chỉ có thể nhận các trị số từ -180 đến 180 (tính bằng độ) Flash tự động điều chỉnh trị được gán cho biến _rotation để có trị thích hợp trong khoảng đó
Để kiểm tra, bạn có thể ghi câu lệnh theo dõi trace("Góc quay: " + _rotation); sau câu lệnh
_rotation += step; trong hàm OnClipEvent(enterFrame) Bằng cách dùng hàm trace như vậy, khi chạy chương trình, bạn sẽ thấy dòng thông báo đại loại như thế này: Góc quay: 120 Đó là nhờ chuỗi "Góc quay: " được ghép với trị số của biến _rotation bằng dấu cộng
Nếu không muốn có quá nhiều thông báo ở bảng Output khi chạy chương trình, bạn thêm dấu // trước câu lệnh gọi
hàm trace:
//trace("Góc quay: " + _rotation);
Flash hiểu rằng những gì được ghi sau dấu // trên một dòng là phần chú thích, không cần xét đến khi biên dịch Do vậy, đặt dấu // trước một câu lệnh giúp bạn tạm thời vô hiệu hóa câu lệnh đó Khi muốn khôi phục hiệu lực của câu lệnh, bạn chỉ cần xóa dấu // trước câu lệnh
Bạn hãy nhuộm màu tím cho hình vuông hiện có, gõ phím F11 để mở bảng Library và kéo hình vuông xanh lá từ thư viện vào sân khấu, tạo thêm một thể hiện nữa của nhân vật Square (hình 3) Trong bảng Actions, bạn viết hàm
xử lý tình huống như sau cho hình vuông xanh lá:
onClipEvent(mouseMove) {
trace("_xmouse: " + _xmouse);
trace("_ymouse: " + _ymouse);
trace("_alpha: " + _alpha);
_alpha -= 1;
}
Bạn chạy chương trình để thử đoán nhận ý nghĩa của những thuộc tính mà bạn chưa biết Bạn sẽ có "đáp án" vào kỳ sau