Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (137.67 KB, 3 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Trong hàm xử lý tình huống bấm chuột onClipEvent(mouseDown) của quả banh màu xanh, bạn đã viết câu
lệnh điều kiện if(_yscale == 100). Câu lệnh như vậy đặt điều kiện "nếu biến _yscale của quả banh màu xanh
có trị bằng 100". Biến _yscale xác định tỉ lệ co dãn theo phương thẳng đứng. Bạn chú ý, dấu "bằng" ở đây (==) khác
với dấu "gán" (=) mà bạn từng dùng.
Biểu thức điều kiện _yscale == 100 có thể đúng hoặc sai vào lúc chạy. Người ta cịn nói "kiểu cách" hơn một
chút: biểu thức _yscale == 100 có thể có trị true hoặc false. Nhờ có hàm onClipEvent(mouseDown)
của quả banh màu xanh, mỗi khi bạn bấm chuột vào lúc chạy, quả banh đó chuyển đổi qua lại giữa hai trạng thái:
được kéo dãn theo phương thẳng đứng hoặc không.
Quả banh màu đỏ và màu xanh đã thể hiện "cá tính" của chúng, ta cũng nên cho quả banh màu cam diễn trị gì đó.
Bạn bấm vào quả banh màu cam, gõ phím F9 để mở bảng Actions (hình 1) và gõ đoạn mã như sau:
onClipEvent(mouseDown) {
if(_visible) {
_visible = false;
}
else {
_visible = true;
}
}
Để diễn đạt điều kiện "nếu biến _visible có trị là true", bạn có thể viết if(_visible == true). Tuy nhiên,
cách viết nêu trên gọn hơn và có ý nghĩa tương đương. Bạn cịn có thể viết gọn hơn nữa:
onClipEvent(mouseDown) {
_visible = !_visible;
}
Trong đó, ta dùng tác tử "không", biểu diễn bằng dấu chấm than (!). Khi đặt dấu chấm than trước biến _visible, bạn
nhận được trị true nếu biến _visible có trị false và ngược lại. Kết quả tác động của tác tử "khơng" được gán trở
lại biến _visible. Nói khác đi, câu lệnh _visible = !_visible; cũng có tác dụng chuyển đổi trị của biến
_visible giữa true và false.
Bấm chuột nhiều lần vào lúc chạy chương trình, có lẽ bạn đã hơi hơi mỏi tay và chợt nghĩ: "<i>Phải chi mấy quả banh </i>
<i>này tự động diễn trò mà không cần chờ bấm chuột</i>". Để đạt được "ước mơ" giản dị đó, bạn chỉ cần sửa đối mục
mouseDown thành enterFrame:
onClipEvent(enterFrame) {
_visible = !_visible;
}
Đối với hàm xử lý tình huống onClipEvent của quả banh đỏ và quả banh xanh, bạn cũng sửa như vậy. Khi đó,
hàm xử lý tình huống "bấm chuột" trở thành hàm xử lý tình huống "chuyển khung". Bạn nhớ, vào lúc chạy chương
trình, Flash khơng ngừng hiển thị các khung liên tiếp. Mỗi lần khung mới xuất hiện, Flash gọi hàm
onClipEvent(enterFrame) của các thể hiện (nếu có). Điều này nghĩa là hàm
onClipEvent(enterFrame) của các thể hiện được gọi một cách tự động và liên tục.
cách bấm kép vào ô tốc độ ở cạnh dưới bảng Timeline, bấm kép vào ô Frame rate trong hộp thoại vừa hiện
ra (hình 2), gõ 6 và gõ Enter (giảm tốc độ từ 12 khung mỗi giây xuống còn 6 khung mỗi giây).
Trong khi quả banh xanh và cam rất năng nổ, quả banh đỏ khiến bạn hơi phiền lịng vì nó dừng lại khi đụng "trần"
và đứng yên luôn. Chắc bạn sẽ nghĩ: "<i>Giá như quả banh đỏ liên tục chạy lên chạy xuống thì vui hơn</i>". Để thực hiện
<b>onClipEvent(load) {</b>
<b> step = 20;</b>
<b>}</b>
onClipEvent(enterFrame) {
<b> if(_y < 0 || _y > 500) {</b>
<b> step = -step;</b>
<b> trace("Tôi đổi chiều đây.");</b>
<b> }</b>
<b> _y += step;</b>
}
Như bạn thấy, trong câu lệnh thay đổi tung độ _y của quả banh đỏ, thay vì ghi số cụ thể để xê dịch quả banh từng
bước cố định như trước _y += 20; giờ đây ta dùng một biến, gọi là step (bạn tùy ý đặt tên cho biến): _y +=
step;.
Khi quả banh đụng "trần" hoặc "sàn", chỉ cần đổi dấu cho trị của biến step, quả banh sẽ đổi chiều chuyển động. Cụ
thể, câu lệnh if(_y < 0 || _y > 500) diễn đạt trường hợp đụng "trần" hoặc "sàn": nếu _y có trị nhỏ hơn 0
hoặc _y có trị lớn hơn 500 (dấu || nghĩa là "hoặc"). Câu lệnh step = -step; dùng để đổi dấu cho trị số của
biến step.