Hướng dẫn sử dụng Macromedia Flash mx



tải về 0.86 Mb.
trang6/27
Chuyển đổi dữ liệu02.09.2017
Kích0.86 Mb.
#32845
1   2   3   4   5   6   7   8   9   ...   27

Bài 10: Hàm có sẵn



Có lẽ bạn đang nóng lòng muốn lập trình trò chơi gì đó thú vị với Flash. Tuy vậy, bạn cần kiên trì tìm hiểu những khái niệm lập trình cơ bản. Khi có nền tảng vững vàng, bạn mới có thể tự do sáng tạo. Thực ra vẫn có nhiều điều thú vị trong kiến thức cơ bản.

Ngoài hàm trace() mà bạn từng dùng vài lần để theo dõi diễn biến của chương trình, còn khá nhiều hàm có sẵn (built-in function) khác trong Flash, làm đủ thứ việc. Gọi là "hàm có sẵn" để phân biệt với hàm do bạn tự tạo ra, tự đặt tên (user-defined function). Bạn cần biết cách dùng hàm có sẵn trước khi thử tạo ra hàm có chức năng như ý. Bạn hãy khởi động Flash và chọn Flash Document để tạo tập tin mới. Bạn gõ phím F9 để mở bảng Actions. Nói cho rõ, dòng tiêu đề của bảng là Actions - Frame, ngụ ý rằng những câu lệnh bạn viết trong bảng có hiệu lực đối với khung hiện hành, sẽ được thi hành khi Flash hiển thị khung đó vào lúc chạy. Khác với trường hợp lập trình cho nhân vật hoặc thể hiện, ở đây bạn không viết hàm xử lý tình huống. Bạn gõ hai câu lệnh như sau:

result = Math.pow(2, 3);

trace("2 lũy thừa 3: " + result);

Câu lệnh thứ nhất tính "2 lũy thừa 3" và gán kết quả cho biến mang tên result (để tạo ra một biến, bạn thoải mái viết tên biến tùy ý và gán trị cho nó). Câu lệnh thứ hai trình bày trị của biến result ở bảng Output, giúp bạn biết kết quả tính có đúng hay không. Lúc viết câu lệnh thứ nhất, sau khi bạn gõ Math và dấu chấm, Flash nhanh nhẩu đưa ra danh sách các hàm khả dĩ (hình 1). Bạn gõ thêm chữ p, Flash đoán rằng đó là hàm lũy thừa pow. Thay vì gõ tiếp ow, bạn có thể gõ Enter để chấp thuận cho Flash ghi hàm pow thay mình. Tiếp theo, Flash nhiệt tình đưa ra dòng hướng dẫn  nhắc bạn rằng đối mục thứ nhất của hàm pow là cơ số và đối mục thứ hai là số mũ. Viết xong hai câu lệnh, bạn ấn Ctrl+Enter để chạy chương trình. Khi hiển thị khung số 1 (ngoài khung số 1, bạn chưa có khung nào khác), Flash thi hành hai câu lệnh được ghi ở khung đó. Kết quả xuất hiện ở bảng Output cho thấy Flash "tính toán như thần": 2 lũy thừa 3: 8.

Có lẽ bạn thấy hơi lạ: "Tại sao phải viết tên hàm là Math.pow, thay vì chỉ viết pow cho gọn?". Viết Math.pow nghĩa là gọi hàm pow của lớp Math ("lớp toán học"). Những hàm có sẵn của Flash được đặt trong nhiều lớp có tên khác nhau để phân loại. Các hàm trong một lớp phục vụ cho một lĩnh vực nhất định. Bạn cần phân biệt khái niệm lớp (class) khá trừu tượng ở đây với lớp (layer) ở bảng thời tuyến. Trong công việc thực tế, bạn dùng "tầng tầng lớp lớp" ở bảng thời tuyến là để tách biệt những hình vẽ và nhân vật trên sân khấu cho khỏi rối. Bạn có thể yêu cầu Flash liên tiếp tính lũy thừa với cơ số là 2 và số mũ là 1, 2,..., 9 bằng cách viết lại đoạn mã ActionScript cho khung 1 như sau:

for(i = 1; i < 10; i++) {

  result = Math.pow(2, i);

  trace("2 lũy thừa " + i + ": " + result);

}

Chạy chương trình, bạn thu được ngay kết quả trong bảng Output (hình 2). Bạn thấy rõ câu lệnh result = Math.pow(2, i); được thi hành lặp đi lặp lại 9 lần. Người ta gọi đó là một vòng lặp (loop). Trong lần thi hành đầu tiên, biến i được gán trị 1. Mỗi lần lặp lại, trị của biến i tăng thêm 1 so với trước.



Hai câu lệnh tính lũy thừa và xuất kết quả được thi hành lặp đi lặp lại là nhờ được ghi bên trong cặp dấu gộp { } sau dòng lệnh for(i = 1; i < 10; i++). Trong cặp dấu ngoặc ( ) sau từ for, ta diễn đạt việc cần làm khi bắt đầu vòng lặp (gán trị 1 cho biến i) và việc cần làm sau mỗi lần lặp (tăng trị của i thêm 1 và xem i có còn bé hơn 10 hay không). Khi viết i < 10, bạn đã đưa ra điều kiện duy trì vòng lặp. Nếu điều kiện đó không thỏa, vòng lặp kết thúc. Với biến i chứa trị là số nguyên, để tăng trị của i thêm 1, bạn viết i++. "Sao không dùng một dấu cộng thôi nhỉ?". Vâng, một dấu cộng thì "tự nhiên" hơn nhưng người ta phải dùng tác tử "cộng cộng" ++ để phân biệt với tác tử "cộng" + thực hiện phép cộng thông thường. Nói cho đúng, tác tử "cộng" + trong ngôn ngữ ActionScript không hẳn là "phép cộng thông thường". Khi viết đối mục của hàm trace(), ta đã dùng tác tử "cộng" để ghép chuỗi với trị nguyên. Chắc bạn thấy rằng viết như vậy cũng... "tự nhiên" thôi.



Bài 11: Hàm tự tạo



Sau khi dùng thử hàm Math.pow (hàm pow của lớp Math), có lẽ bạn muốn biết những hàm có sẵn khác. Để tra cứu các hàm có sẵn, bạn trỏ vào cạnh trái khung soạn thảo trong bảng Actions (trong cửa sổ Flash, nếu bảng Actions chưa mở, bạn gõ phím F9), sao cho con trỏ chuột chuyển thành dạng "mũi tên hai đầu", rồi kéo chuột qua phải. Bạn thấy lộ ra một cửa sổ "bí mật", chứa đựng các "tàng thư" quan trọng đối với việc lập trình Flash (hình 1).

Thư mục đầu tiên Global Functions giúp bạn tìm hiểu những hàm toàn cục, tức những hàm cần dùng thường xuyên, không nằm trong lớp nào cả. Thư mục tiếp theo Global Properties liệt kê các biến toàn cục, tức những biến mà bạn có thể dùng bất cứ lúc nào khi viết chương trình. Biến toàn cục được dùng chung cho mọi nhân vật và thể hiện. Thư mục Built-in Classes giúp bạn tìm hiểu các lớp có sẵn. Bấm vào thư mục đó, bạn thấy các thư mục con, trong đó thư mục Core liệt kê các lớp cốt lõi. Thử bấm vào thư mục Core, bấm vào thư mục Math, bấm vào thư mục Methods, bạn thấy rõ các hàm thuộc lớp Math. Trỏ vào từng hàm, bạn thấy hiện ra dòng giải thích ngắn gọn về công dụng của hàm.




Sau này, khi đã lập trình "quen tay", bạn sẽ thường xuyên mở cửa sổ tra cứu để xem lại cách dùng các hàm có sẵn. Hiện thời, bạn chỉ cần biết sơ lược như vậy về chỗ tra cứu. Bạn hãy bấm nút có dấu tam giác  ở cạnh phải cửa sổ tra cứu để dẹp nó đi. Ngoài việc dùng các hàm có sẵn, bạn sẽ phải tạo ra hàm phù hợp với nhu cầu của mình. Người ta gọi đó là hàm tự tạo (user-defined function) nhằm phân biệt với hàm có sẵn. Để thử tạo ra hàm, bạn xóa sạch nội dung hiện có trong bảng Actions (nếu còn) và gõ đoạn mã như sau:

function init() {

  num = 0;

}

function count() {



  num++;

  trace("Số đếm hiện nay là: " + num);

}

Viết như vậy nghĩa là bạn định nghĩa hai hàm init() và count(). Định nghĩa hàm bắt đầu bằng từ function, nhằm làm cho Flash hiểu rằng "Đây là hàm mới đấy nhé!". Sau từ function là tên hàm do bạn tùy ý chọn và cặp dấu ngoặc (). Tiếp theo, phần được ghi giữa cặp dấu gộp {} là thân hàm (function body), diễn đạt những việc mà hàm thực hiện.



Hàm init() gán cho biến num trị ban đầu là 0. Hàm count() làm cho trị của biến num tăng thêm 1 và thể hiện trị của biến num trong bảng Output. Bạn có thể hình dung hàm count() dùng để đếm thứ gì đó. Bạn gọi hàm count() để "đếm tới". Khi nào cần "đếm lại từ đầu", bạn gọi hàm init() trước, sau đó gọi hàm count(). Để thử dùng hai hàm mới toanh của mình, bạn ghi thêm như sau bên dưới hai định nghĩa hàm:

init();

for(i = 0; i < 5; i++) {



  count();

}

Viết như vậy nghĩa là gọi hàm init(), rồi gọi hàm count() năm lần. Thay vì viết năm lần câu lênh count(); ta dùng một vòng lặp for theo cách thức mà bạn đã biết. Ấn Ctrl+Enter để chạy chương trình, bạn thấy dòng thông báo về số đếm hiện ra năm lần đúng như dự định. Định nghĩa hàm còn có thể được viết theo cách khác như sau:



init = function() {

  num = 0;

}

count = function() {



  num++;

  trace("Số đếm hiện nay là: " + num);

}

Thay vì viết vòng lặp for, bạn có thể dùng vòng lặp while:



while(num < 5) {

  count();

}

Sửa lại chương trình theo cách viết mới và chạy thử, bạn thấy kết quả trong bảng Output hoàn toàn giống như trước. Quan sát cách viết vòng lặp while, bạn hiểu ngay: vòng lặp này chỉ được duy trì khi điều kiện num < 5 được thoả. Sau khi biến num nhận trị số 5, điều kiện num < 5 không được thỏa nữa, vòng lặp kết thúc ngay. Khi lập trình, nếu bạn thấy mình đang viết đi viết lại một nhóm câu lệnh nào đó, cần nghĩ ngay đến việc viết một hàm chứa đựng nhóm câu lệnh đó để dùng cho tiện, không nên để chương trình dài lê thê với nhiều đoạn tương tự. Sau khi định nghĩa hàm, chỉ cần một câu lệnh gọi hàm đó, bạn có thể giải quyết nhanh gọn nhiều việc.




Каталог: files -> 2012
files -> PHỤ LỤC 2 TỔng hợp danh mục tài liệu tham khảO
files -> BÁo cáo quy hoạch vùng sản xuất vải an toàn tỉnh bắc giang đẾn năM 2020 (Thuộc dự án nâng cao chất lượng, an toàn sản phẩm nông nghiệp và phát triển chương trình khí sinh học ) Cơ quan chủ trì
files -> BỘ TÀi nguyên và MÔi trưỜng
files -> 1. Mục tiêu đào tạo: Mục tiêu chung
2012 -> Số Hồ sơ: 50 / /cs-bhyt cộng hòa xã HỘi chủ nghĩa việt nam
2012 -> HÌnh ảnh thao tác dữ liệu máy toàN ĐẠc nts 310 CỦa hãng south
2012 -> Khóa học 2010 -2012 (TT10C/1) (Ban hành theo quyết định số /QĐ-bgh ngày …tháng…năm của Hiệu trưởng trường Đại học Hoa Sen)
2012 -> Thông báo về việc xét thông qua đề tài luận văn và người hướng dẫn cho hvch k56

tải về 0.86 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   27




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương