Phần 2 và phần 3 nội dung của sách gồm các chương 5 (Dành cho các độc giả muốn tìm hiểu về ActionScript 3.0 - một ngôn ngữ lập trình có cấu trúc gần giống với Java được sử dụng để tăng cường sức mạnh cho Flash). Chương 6 và 7 thì phần này giúp bạn đọc hoàn thiện các thước phim hoạt hình bằng các kĩ thuật nâng cao. Hy vọng các bạn có thể trau dồi thêm kiến thức về lĩnh vực đồ họa qua ebook này.
CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT ActionScript ngơn ngữ lập trình hướng đối tượng dùng để phát triển ứng dụng nhờ vào Adobe Flash Player Adobe AIR Ngôn ngữ lập trình ActionScript biên dịch bởi: - Adobe Flex Builder - Adobe Flash Professional - Command Line nhờ vào SDK Cũng tương tự Java, sau biên dịch, ActionScript chuyển thành dạng bytecode mà có máy ảo ActionScript (AVM) hiểu Máy ảo ActionScript n{y tích hợp bên Flash Player, Flash Plugin Adobe AIR Ngôn ngữ lập trình ActionScript (AS) ngơn ngữ có cú pháp kết hợp Java Delphi (cú pháp từ khóa giống Java, cách khai báo giống Delphi) Nếu bạn đ~ làm quen với ngơn ngữ lập trình Java, làm quen với ngơn ngữ lập trình ActionScript, bạn cảm thấy đơn giản nhiều Các toán tử, câu lệnh tương tự Java Một điều đặc biệt, l{ lớp ActionScript có cú pháp khai báo cách sử dụng giống với Java Dường Adobe đ~ thiết kế nên ngôn ngữ ActionScript theo chuẩn Java để tạo nên đơn giản quen thuộc với đa số người dùng Bạn cần lưu ý rằng, thảo luận phiên 3.0 AS Đ}y l{ phiên thời điểm AS ngôn ngữ hướng đối tượng Delphi (hay C++), nghĩa l{ khơng tuyệt giao với lập trình hướng thủ tục (bằng chứng ta viết hàm bên ngồi lớp) AS ngôn ngữ phân biệt chữ hoa chữ thường Một ví dụ kinh điển học ngơn ngữ lập trình l{ ví dụ “Hello, world !” Thơng qua ví dụ kinh điển này, có nhìn tổng quan ngơn ngữ ActionScript Bạn quan sát ví dụ minh họa viết ngơn ngữ lập trình ActionScript Bạn cần lưu ý rằng, đoạn chương trình n{y viết bên ngồi lớp (thể tính lưỡng cực hướng đối tượng v{ hướng thủ tục) CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT Hình 102 – Giao diện ActionScript Trong ví dụ này, bạn thấy nhiều điểm tương đồng AS với Java là: dấu comment (// - comment dòng /**/ - comment nhiều dòng), cách viết nội dung hàm (nằm cặp dấu {}) có khái niệm hàm (trả kiểu liệu không trả kiểu liệu) C|c điểm tương đồng với Delphi: từ khóa khai báo hàm function kiểu liệu hàm trả nằm sau tên hàm dấu hai chấm Một điểm khác biệt AS so với Java Delphi l{ chương trình nằm tự vùng soạn thảo (không giống Java phải hàm main, Delphi begin end) Nó nằm trước hay sau c|c h{m khai b|o Để quy ước trật tự sử dụng, ta sử dụng cú pháp (lệnh trước thực trước, lệnh sau thực sau) – nghĩa phần chương trình ln nằm phía sau ta đ|nh dấu dòng comment /*Chương trình chính*/ Bạn cần lưu ý rằng, AS ngôn ngữ kịch (scripting language), nên mang nhiều đặc trưng ngôn ngữ kịch Các câu lệnh nằm tự do, không thiết phải đặt hàm cụ thể n{o, đ}y l{ đặt trưng dễ nhận thấy ngôn ngữ kịch (như JavaScript, Jscript…) - 110 - CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT Chúng ta tìm thấy nhiều điểm tương đồng khác biệt AS so với hai ngôn ngữ Java Delphi (nếu bạn đ~ tưng l{m quen với hai ngôn ngữ này) Chúng ta tìm hiểu cú pháp ngơn ngữ lập trình AS Xin nhắc lại phiên ActionScipt m{ ta thảo luận ACTIONSCRIPT 3.0 5.1 C|c kiểu liệu Ở đ}y ta thảo luận kiểu liệu hệ Windows 32 bit Các kiểu liệu mà ta thảo luận kiểu nguyên thủy Trong AS, kiểu liệu tương ứng với lớp liệu tạo nó: kiểu int lớp int, kiểu Number lớp Number a Kiểu số nguyên Có hai dạng số nguyên hỗ trợ AS kiểu số nguyên có dấu int số ngun khơng dấu uint Cả hai loại số nguyên n{y điều chiếm 4byte, nghĩa l{ vùng giá trị int -231 đến 231-1 giá trị uint l{ 0…232-1 Bạn lưu ý rằng, kiểu liệu, có kiểu số nguyên có chữ c|i viết thường b Kiểu số thực Số thực dấu chấm động theo chuẩn IEEE-754 Số thực AS chiếm 32 bit Từ khóa khai báo Number Bạn lưu ý Number viết hoa chữ c|i c Kiểu Boolean Kiểu Boolean AS có hai giá trị true false Bạn lưu ý Boolean viết hoa chữ c|i đầu tiên, true false viết thường chữ d Kiểu xâu String Xâu kí tự đ|nh dấu từ Phần tử cuối xâu có số xâu.lengh1 Kiểu x}u khai báo nhờ từ khóa String Bạn cần lưu ý String viết hoa chữ c|i e Kiểu mảng Array Việc đ|nh dấu Array ho{n to{n tương tự String Kiểu Array viết hoa chữ c|i f Kiểu đối tượng Object Tương tự kiểu Struct C Nhưng mềm dẻo nhiều Chúng ta thấy rõ điều n{y qua c|c chương trình gi|o trình n{y - 111 - CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT Để xử lý liệu liên quan đến kiểu liệu nguyên thủy ta phải làm việc với lớp đối tượng tương ứng: kiểu int uint với lớp int uint, kiểu Number với lớp Number, kiểu String với lớp String, kiểu Array với lớp Array kiểu đối tượng Object Chi tiết c|c phương thức xử lý lớp ta thảo luận sau tìm hiểu lớp AS 5.2 Biến v{ Hằng a Biến: có giá trị thay đổi Khi khai báo biến ta khai báo theo cú pháp sau: var tên_biến:Kiểu_Dữ_Liệu [= giá_trị_khởi_tạo]; Khi khai báo biến, bạn phải sử dụng từ khóa var Ta lấy vài ví dụ khai báo biến AS var a:int = 1; var b:Number; b = 1.5; //C|c dòng khai b|o sau tương đương var s:String = “Hello”; var s:String = new String(“Hello”); var s:String = String(“Hello”); //Kết thúc tính tương đương //C|c dòng khai b|o sau tương đương var ar:Array = new Array(“a”, “b”); var ar:Array = new Array(3); //Kết thúc tương đương var myAssocArray:Object = {fname:"John", lname:"Public"}; trace(myAssocArray.fname); // John trace(myAssocArray["lname"]); // Public - 112 - CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT myAssocArray.initial = "Q"; trace(myAssocArray.initial); // Q Bạn khởi tạo giá trị cho biến thời điểm khai báo biến khai báo biến khởi tạo giá trị cho biến sau b Hằng: có giá trị khơng thay đổi Trong AS, để khai báo ta thay từ khóa var khai báo biến từ khóa const Bạn lưu ý khai báo bạn cần phải bổ sung giá trị cho Nghĩa l{ cú ph|p khai báo phải tuân theo quy tắc sau const tên_hằng:Kiểu_Dữ_Liệu = giá_trị_khởi_tạo; Bạn lưu ý rằng, giá trị khởi tạo không giống trường hợp khởi tạo cho biến có khơng, bắt buộc phải có Các bạn quan sát khai báo sau đ}y const a:int = 1; const s:String = “abc”; 5.3 To|n tử v{ Biểu thức Toán tử l{ c|c phép to|n sử dụng AS Các giá trị sử dụng cho toán tử gọi toán hạng Biểu thức tập hợp toán tử tốn hạng xếp theo trật tự có ý nghĩa Toán tử gán Toán tử g|n dùng để gán giá trị cho biến Ví dụ a = 5; Câu lệnh gán thực gán giá trị bên phải cho biến bên trái Bạn gán giá trị hai biến cho Ví dụ a = b; a = b + 2; Giá trị a giá trị b cộng thêm a = a + 1; Tăng gi| trị a lên a = b = c = 5; G|n đồng thời nhiều giá trị Nó tương ứng với tập lệnh sau: - 113 - CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT c = 5; b = c; a = b; Toán tử thực phép toán số học Ngơn ngữ lập trình AS hỗ trợ tốn tử số học sau Toán tử Ý nghĩa + Phép cộng - Phép trừ * Phép nhân / Phép chia (chia nguyên số nguyên) % Chia lấy dư (chỉ với số nguyên) Bạn lưu ý rằng, phép chia thực số nguyên số thực Nếu thực phép chia hai số nguyên đ}y l{ kết phép chia lấy phần ngun Còn thực hai số thực, kết phép chia bình thường Như vậy, theo mặc định, hai số nguyên (hoặc thực) thực phép to|n tương ứng trả kết nguyên (hoặc thực) Nếu phép toán thực số nguyên số thực, tự động chuyển đổi kiểu cao (th{nh số thực) Vậy làm n{o để thực phép chia cho 2, ta muốn nhận kết 1.5 Ta biết hai số nguyên, ta thực phép chia 3/2 ta thu số nguyên – kết phép chia nguyên 3/2, tức Muốn thu kết 1.5, bạn cần chuyển đổi dạng số thực cách sau: Khai báo số thực (bằng c|ch quy định kiểu liệu a:Number = 3, b:Number = 3.0, 2.0) Chuyển đổi kiểu liệu (Xem thêm phần toán tử chuyển đổi kiểu liệu) - 114 - CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT Tốn tử logic Tốn tử Phép toán A b Kết Toán tử phủ định ! Phép tốn ngơi !a true - false false - true true true true true false false false true false false false false true true true true false true false true true false false false Phép tốn hai ngơi Tốn tử && a&&b Toán tử Phép toán hai ngơi || a||b Tốn tử dịch bit Các tốn tử n{y sử dụng đến tính tốn số nguyên cách sử dụng bit Toán tử Tên gọi Ví dụ 210=102 & Phép “V{” bit 2&3=2 310=112 210=102 210=102 | Phép “hoặc” bit 2|3=3 310=112 310=112 ^ Phép “hoặc loại” - 115 - 2^3=1 210=102 CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT bit 310=112 110=012 >3=0 2/23=2/8=0 ~ Phủ định bit ~2=1 210=102 110=012 Các toán tử bit, hoăc bit, loại bit phủ định bit tính sau: chuyển đổi số thập phân sang nhị ph}n tương ứng, sau sử dụng phép to|n tương ứng cho bit theo vị trí Ví dụ 210=102, 310=112 ta thực c|c phép to|n tương ứng với bit Bit thứ (từ phải sang trái) 0&1=1, bit thứ hai 1&1=1, kết phép toán 2&3 102 hay 210 Tương tự cho phép tốn lại Ở đ}y bạn lưu ý phép tốn tuyển loại có chân trị hai bit tương ứng khác nhau, giống tương ứng 0(1^1=0^0=0, 1^0=0^1=1) Các tốn tử > tính sau: ab=a/2b Toán tử gán hợp Khi muốn thay đổi giá trị biến, sử dụng cách viết thơng thường, nhiên AS hỗ trợ toán tử viết tắt Toán tử Ví dụ Ý nghĩa Phạm vi += a+=b a=a+b Phép toán số học -= a-=b a=a-b Phép toán số học *= a*=b a=a*b Phép toán số học /= a/=b a=a/b Phép toán số học %= a%=b a=a%b Phép toán số học &= a&=b a=a&b Phép toán bit - 116 - CHƯƠNG LẬP TRÌNH VỚI ACTIONSCRIPT |= a|=b a=a|b Phép toán bit ^= a^=b a=a^b Phép toán bit >>= a>>=b a=a>>b Phép toán bit =