Tải bản đầy đủ (.docx) (3 trang)

Lap trinh Flash Bai 6 Cau lenh dieu kien

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 (141.4 KB, 3 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Câu lệnh điều kiện</b>


<b>[Hoàng Ngọc Giao]</b>


Bạn đã thấy thông báo lỗi xuất hiện ở bảng Output. Khi bạn dừng chương trình (đóng cửa sổ swf), thơng báo lỗi
vẫn cịn lưu lại trong bảng Output ở phía phải cửa sổ Flash để bạn "nghiền ngẫm". Lỗi như vậy gọi là lỗi lúc biên
<i>dịch (compile-time error). Chương trình khơng chạy được nếu có lỗi lúc biên dịch. Nếu chương trình chạy được </i>
nhưng lại tỏ ra "kỳ cục", khơng đúng như dự kiến, người ta nói rằng chương trình có lỗi lúc chạy (run-time error).
Trong chương trình của mình, bạn có thể chủ động đưa thơng báo ra bảng Output. Nhờ vậy, khi chạy chương trình,
bạn dễ dàng theo dõi diễn biến thực tế, dễ dàng phát hiện nguyên nhân gây ra lỗi lúc chạy. Để thử đưa thông báo ra
bảng Output, bạn hãy bấm chọn quả banh đang có lỗi biên dịch, gõ phím F9 để mở lại bảng Actions (nếu cần).
Trong bảng Actions, bạn xóa câu lệnh sai, gõ đoạn mã mới như sau:


onClipEvent(mouseDown) {
_y -= 20;


trace("Tôi đi lên đây.");
}


Hàm onClipEvent giờ đây có hai câu lệnh. Câu lệnh đầu tiên làm cho quả banh xê dịch lên trên 20 điểm ảnh. Câu
lệnh thứ hai là câu lệnh gọi hàm trace, làm cho quả banh biết thông báo về hành động của mình! Thơng báo "Tơi đi
lên đây" là đối mục của hàm trace. Về mặt cấu trúc, thông báo "Tôi đi lên đây" là một chuỗi ký tự, gọi tắt là chuỗi
<i>(string). Dùng bộ gõ UniKey thông dụng, bạn dễ dàng tạo ra ký tự Việt có dấu trong chuỗi. Khi dùng chuỗi, bạn </i>
đừng quên mở đầu và kết thúc chuỗi bằng dấu nháy (").


Ấn Ctrl+Enter để chạy chương trình, bạn thấy mỗi lần bấm chuột, quả banh xê dịch lên trên và thông báo "Tôi đi lên
đây" xuất hiện ở bảng Output (hình 1). Bạn hãy bấm chuột liên tiếp nhiều lần để thấy quả banh đi mất tiêu. Đó là
khi tung độ _y vượt ra ngoài phạm vi hiển thị của sân khấu.


Để quả banh không đi mất, bạn dừng chương trình, sửa nội dung hàm onClipEvent như sau:
onClipEvent(mouseDown) {



<b> if(_y > 0) {</b>


_y -= 20;


trace("Tôi đi lên đây.");


<b> }</b>


}


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

phải được viết bên trong cặp dấu gộp { }, đặt sau cặp dấu ngoặc ( ). Để Flash hiểu được những gì bạn viết, cần tuân
thủ nghiêm ngặt các quy tắc vừa nêu.


Chạy lại chương trình và bấm chuột nhiều lần, bạn thấy quả banh rốt cuộc dừng lại, "khơng thèm" nhúc nhích nữa.
Đó là khi điều kiện "tung độ _y lớn hơn 0" không được thỏa, tức là khi _y nhỏ hơn hoặc bằng 0. Bạn chú ý, tung độ
của quả banh là tung độ của điểm mốc. Chính bạn đã quy định điểm mốc nằm ở giữa cạnh dưới khung bao của quả
banh.


Nếu muốn quả banh "nói năng" gì đó khi điều kiện "tung độ _y lớn hơn 0" không được thỏa, chứ khơng im lìm, bạn
viết thêm vào hàm onClipEvent:


onClipEvent(mouseDown) {
if(_y > 0) {


_y -= 20;


trace("Tôi đi lên đây.");
}


<b> else {</b>



<b> trace("Tôi không đi nữa.");</b>
<b> }</b>


}


Từ else giúp bạn diễn đạt trường hợp ngược với trường hợp được nêu bởi từ if. Việc cần làm khi điều kiện "tung độ
_y lớn hơn 0" không được thỏa phải được ghi bên trong cặp dấu gộp { } theo sau từ else. Nhờ viết như vậy, lúc chạy
chương trình, quả banh thơng báo "Tơi khơng đi nữa" nếu tung độ của nó khơng lớn hơn 0. Lời từ chối đó cho bạn
thấy quả banh tuy trơ trơ nhưng vẫn hiểu bạn đang bấm chuột thúc giục nó.


Với hai quả banh cịn lại "chưa có cá tính", ta cũng thử lập trình cho chúng có hành vi khác biệt. Trước khi làm như
vậy, bạn nên cho hai quả banh cịn lại có màu khác cho dễ phân biệt: một xanh, một cam chẳng hạn. Bạn không thể
chọn màu tô khác nhau cho các thể hiện khác nhau của một nhân vật nhưng có thể chọn màu nhuộm (tint color) khác
nhau cho chúng. Cụ thể, bạn hãy chọn quả banh "chưa có cá tính", ấn Ctrl+F3 để mở cửa sổ Properties tương ứng,
chọn Tint trong ô Color, bấm vào ô màu kế bên và chọn màu trong bảng màu. Muốn màu nhuộm lấn át màu tô, bạn
ghi 100% trong ô Tint Amount: . Bằng cách đó, bạn có được ba thể hiện của nhân vật Ball có màu khác
nhau (hình 2).


Bạn chọn quả banh màu xanh, gõ đoạn mã như sau trong bảng Actions:
onClipEvent(mouseDown) {


if(_yscale == 100) {
_yscale = 200;
}


else {


_yscale = 100;
}



}


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3></div>

<!--links-->

×