1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiều về lập trình hướng đối tượng trong ActionScrip

31 888 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiều về lập trình hướng đối tượng trong ActionScrip
Tác giả Đặng Trần Quyết, Kiều Hải Yến
Trường học CNTT48A_KTQD
Thể loại Đề án
Định dạng
Số trang 31
Dung lượng 263,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tìm hiều về lập trình hướng đối tượng trong ActionScrip

Trang 2

Phụ lục

I :Khái quát về Action Scrip

1 Khái niệm về Action

2 Cách hoạt động của Action

3 Viết Action ở đâu

II : Các kiểu dữ liệu trong Action Scrip

1 Các câu lệnh điều kiện, vòng lặp

2 Xây dựng trò chơi “Phi Thuyền Không Gian”

IV : Kết luận

Tài liệu tham khảo

Trang 3

I.Khái quát về Action Script

1 Khái niệm Action Script :

AS (Action Script) là ngôn ngữ lập trình với các lệnh sai khiến trong Flash movielàm việc theo đúng những gì mình viết Phần nhiều thì AS làm việc trong môi trường củaFlash, tuy nhiên AS cũng có thể gửi lệnh cho brower, hệ điều hành v.v

Xuất xứ của AS

AS rất giống ngôn ngữ C++, Java, javascript v.v và được dựa trên tiêu chuẩn doECMA(European Computer Manufactuers Association) lập ra gọi la ECMAScrip Nhiềungười hiểu lằm rằng AS dựa trên Javascript nhưng thực chất cả 2 đều dựa trênECMAScript

Lúc đầu viết script trong Flash rất đơn giản và cho tới Flash 4 mới được phát triển nhưngcũng vẫn còn “thô sơ” với những vòng lặp và các điều kiện “if…else” Cho tới Flash 5 thìdân Flash mới có thể lập trình và gắn liền script với các yếu tố trong movie Sang tớiFlash MX thì AS đã trở thành ngôn ngữ lập trình toàn diện với hơn 300 câu lệnh, hàm v.v

AS đơn giản chỉ là những câu lệnh được viết bằng tiếng anh

Mục đích chính của AS là thay đổi thứ tự trong cách chơi của Flash AS có thể dung ở bất

cứ Frame nào hay chạy ngược trở lại frame trước hay nhảy vài frame rồi chơi tiếp Nhưng

đó không chỉ là những gì AS có thể làm được AS có thể biến film hoạt hình của Flashthành một chương trình ứng dụng có sự tương tác của người dung Dưới đây là những cơbản mà AS có thể làm:

- Hoạt hình : Bạn không cần AS để làm hoạt hình nhưng với AS thì bạn có thểtạo những hoạt hình phức tạp hơn

- Navigation: thay vì movie chỉ chơi từng frame một theo thứ tự thì bạn có thểdừng movie ở bất cứ frame nào và cho phép người dùng có thể chơi ở bất cứframe nào v.v

Trang 4

- Thu thập thong tin từ người dung (user input): bạn có thể dùng AS để hỏingười dùng một câu hỏi rồi dùng thông tin đó trong movie hay có thể gửi choserver hay làm những gì bạn muốn.

- Thu nhập thông tin từ các nguồn khác: AS có thể tương tác với server và lấycác thông tin từ server hay text file

- Tính toán: AS có thể làm bất cứ phép tình nào mà toán học cho phép

- Thay đổi hình ảnh trong movie : AS có thể thay đổi kích thước, màu săc, vịtrí của bất cứ movie clip (MC) nào trong movie flash của bạn Bạn có thể tạothêm phiên bản hay xoá bở phiên bản của MC với AS

- Phân tích môi trường của máy tính: với AS bạn có thể lấy giờ từ hệ điều hànhhay địa chỉ đang chơi movie Flash đó

- Điều khiển âm thanh trong flash movie: AS là cách tốt nhất để điều khiển âmthanh trong Flash AS có thể chơi chậm, nhanh, ngừng, quay vòng v.v bất kỳ

âm thanh nào trong Flash

3 Viết AS ở đâu

- Viết AS ở timeline : AS có thể viết vào key frame ở bất cứ timeline nào Đểlàm như vậy bạn chọn keyframe ở trong timeline trước rồi bạn mở ActionPanel ra (F9) để viết hay xem AS đã được viết ở đó ( Nên để Action Paneldưới dạng Expert hơn là Normal )

Note: Khi viết AS vào key frame như vậy thì AS ở key frame đó sẽ hoạt động khi màFlash chơi tới key frame đó VD như lệnh AS stop()được đặt ở keyframe 5 thì Flashchơi tới key frame 5 thì dừng lại cho tới khi có lệnh khác Cách viết này gọi là viếtvào time line

Một trong những lý do viết script vào time line là khi bạn muốn dùng function (hàm),

vì function cho phép chúng ta tái sử dụng đoạn mã đó từ nhiều nơi, nhiều level khác

- Viết AS ở nút : Các phần tử của Flash movie được gọi là symbol (biểutượng), thường thì symbol là các hình ảnh Và có 3 loại symbol : button (nút),graphic (hình ảnh), movie clip(đoạn phim) 3 loại trên thì AS không thể viếtliền với graphic, chỉ có thể viết được với button và movie clip

Nút sẽ không có tác dụng gì cả nếu như không kèm AS lên trên nó Muốn kèm ASvào nút thì chọn nút trên stage (sân khấu: diện tích của flash movie), rồi sau đó mởAction panel và viết vào đó như ta

viết vào key frame

AS viết trên nút chỉ hoạt động khi chuột hoặc bàn phím tác động lên nút mà thôi

- Viết AS ở MC

Trang 5

MC khác với graphic ở chỗ MC được đặt tên khi mang vào stage, MC thường làhình ảnh động, và có thể có AS kèm theo MC Để viết AS vào MC thì cũng tương

Toán tử số và so sánh :

+ Cộng một giá trị số với một giá trị số khác

- Trừ một giá trị số với một giá trị số khác

* Nhân một giá trị số với một giá trị số khác

/ Chia một giá trị số với một giá trị số khác

%(modulo) Lấy phần dư của phép chia

<<= Đảo bit dời trái và phép gán

Trang 6

>>= Đảo bit dời phải và phép gán

>>>= Dời phải zero lấp đầy và phép gán

+=, -=, /=, *= Phép cộng ,trừ,chia,nhân và phép gán

1.2 Kiểu chuỗi ký tự - String :

Kiểu chuỗi dùng để lưu trữ một dãy ký tự Chuỗi ký tự đó cần phải đặt trong dấunháy đôi “ ” hay nháy đơn Muốn kết hợp các chuỗi bạn sử dụng dấu (+) Nếu cộng mốt

số với một chuỗi sẽ cho ra kết quả là chuỗi

Action script sử dụng toán tử (+ ) để nối chuỗi

VD : sử dụng toán tử (+) để nối chuỗi

&& (and) True nếu các biểu thức đều thoả mãn điều kiện hoặc trả về

False nếu một biểu thức không thoả

||(or) True nếu một trong các biểu thức thoả điều kiện hoặc trả về

False nếu tất cả không thoả

Trang 7

1.4 Kiểu đối tượng Object :

Một đối tượng là tập hợp các thuộc tính Mỗi thuộc tính có tên và giá trị Giá trị củamột thuộc tính có thể là một kiểu dữ liệu của Flash, thậm chí là kiểu dữ liệu đối tượng.Điều này cho phép bạn sắp xếp những đối tượng bên trong đối tượng khác để chị địnhđến những đối tượng hoặc thuộc tính của chúng bằng cách sử dụng dấu chấm (.)

Ví dụ : trong đoạn mã lệnh dưới đây hoursWorked là thuộc tinhs của WeeklyStats màWeeklyStats lại là thuộc tính của Employee

Employee.WeeklyStats.hoursWorked

Bạn có thể sử dụng những đối tượng được định nghĩa sẵn trước để truy cập và thực hiệnnhững loại thông tin mặc định, ví dụ đối tượng Math có phương thức biểu diễn nhữngtoán tử toán học trên những con số mà bạn định cho chúng Trong ví dụ này sử dụngphương thức sqrt (lấy căn bậc hai)

squareRoot = Math.sqrt (100);

1.5 Kiểu Movie Clip :

Movie Clip là những thực thể mà có thể chuyển động trong phim Flash Chúng làkiểu dữ liệu duy nhất mà tham chiếu tới một yếu tố đồ hoạ

Kiểu dữ liệu Movie Clip cho phép điều khiển thực thể Movie Clip bằng cách sử dụngcác phương thức của đối tượng Movie Clip Bạn có thể gọi những phương thức này bằngcách sử dụng toán tử dấu chấm (.)được diễn đạt dưới đây

Kiểu dữ liệu null chỉ có một giá trị, null Giá trị này nghĩa là “không có giá trị

nào”đó là, một sự thiếu của data Giá trị null có thể được dùng trong các hoàn cảnh đa dạng Đây là vài ví dụ:

• Để chỉ ra một biến chưa nhận giá trị

• Để chỉ ra một biến khôngchứa một giá trị nữa

• Như giá trị trả về của một function, để chỉ ra không có giá trị nào sẵn dùng để

Trang 8

được trả về bởi function

• Như một tham số vào một function, để chỉ ra một tham số đang bị bỏ quên

Undefined

1.7 Kiểu undefined:

Kiểu dữ liệu undefined có một giá trị, undefined, và được dùng cho một biến mà

không được gán giá trị

Visible = true;// hằng số logic

Name = “Movie”; // Hằng chuỗi

Khai báo :

Var <Tên biến 1, tên biến 2, >[: kiểu]

Trang 9

Var<Tên biến > = <Giá trị khởi tạo>

VD:

Var x,y,z; // Khai báo các biến có tên x,y,z

Var S = 0, Name= “MC”; // Khai báo và khởi tạo giá trị ban đầu cho biến S=0, biếnName= “MC”

Var x: Number = 10;

- Khởi tạo biến :

Một ý hay luôn gán một biến một giá trị đã biết ở lúc bạn định nghĩa biến đầu tiên Điều này được biết như khởi tạo một biến và thường xuyên được làm trong frame đầu tiên của tệp SWF

* Phạm vi và công bố các biến:

+ Các biến cục bộ: Để công bố các biến cục bộ, dùng câu lệnh var bên trong thân

của một function Một biến cục bộ thuộc phạm vi khối và hết hiệu lực ở cuối khối Một biến cục bộ không công khai bên trong một khối, hết hiệu lực ở cuối script của nó.Các biến cục bộ có thể cũng giúp chặn các sự tranh chấp tên, mà có thể là nguyên nhân các lỗi trong ứng dụng của bạn

Ví dụ : var a:Number

+ Các biến Timeline : Các biến Timeline là sẵn dùng tới bất cứ script trên Timeline.

Để công bố các biến Timeline, khởi tạo chúng trên bất cứ frame nào trong Timeline Đừng quên khởi tạo biến trước khi thử truy cập nó trong một script

Ví dụ, nếu bạn đặt code var x = 10; trên Frame 20, một script đã gắn tới bất cứ frame trước Frame 20 không thể truy cập vào biến

+ Biến_global : Các biến này có hiệu lực với mọi bảng tiến trình, phạm vi hoặc

các hàm trong tập tim SWF Do đó bạn có thể khai báo một biến toàn cục và sau đó sử dụng biến trong các tập tin SWF được tải vào tập tin SWF chính mà không cần thực hiệnthay đổi bất kỳ mã lệnh nào trong Actioncript hay cấu trúc của tập tin

Biến toàn cục được định nghĩa với từ khoá _global ở phía trước mỗi biến

Trang 10

2.3 Biểu thức :

Biểu thức được xem như một phần của mã lệnh, là sự kết hợp hằng, biến và các toán

tử theo cú pháp của Actioncript để thực hiện việc tính toán (xác định) một giá trị

Một trong những tiện ích của việc sử dụng hàm là có thể thực hiện một số chức năngnào đó trong chương trình nhiều lần mà không cần viết lại mã lệnh Ngoài ra về kỹ thuật

Trang 11

lập trình cho phép bạn phân chia thành nhóm các chức năng Module để dễ dàng quản lý

và theo dõi chương trình

Function <Tên hàm>([các tham số hình thức nếu có])

{

Var <Danh sách cấc biến cục bộ>;

Statements; // Các mã lệnh thực hiện của hàm

[return kq;//kq là lưu kết quả trả về của hàm]

Khi chương trình gọi hàm thì các tham số hình thức sẽ được truyền vào bằng các tham

số thực để tính toán ra giá trị cụ thể Tham số thực có thể được truyền vào bằng cáchtruyền theo giá trị cụ thể hoặc truyền theo địa chỉ (thông qua biến lưu giữu giá trị)

VD: Khai báo hàm tính tổng 3 số a,b,c

<instance name>.<biến cố> = function(){

Trang 12

}

Biến cố ở đây thông thường là onPress, onRelease, onRollOver

VD : Tạo một nút bấm với tên thực thể là “nut”, với biến cố thả chuột:

- Viết kịch bản trực tiếp trong nút bấm :

On (release) {

}

- Viết theo hàm biến cố tại một khung hình nào đó

Nut onRelease = function(){

}

4 Truy Xuất Dữ Liệu :

4.1 Truy xuất D.Text, I.Text và TextArea :

Flash cho phép truy xuất hai đối tượng nhập liệu (Input Text) và xuất dữ liệu(Dynamic Text) trực tiếp thông qua tên biến được khai báo trong hộp var hay từ tên thựcthể (Instance Name) thông qua lệnh Text với cú pháp

Khai báo cấu trúc tập tin

-Tạo một tập tin văn bản text

-Khai báo biến và giá trị theo cú pháp : <& ten_bien>= giá trị và liên tiếp chocác biếnkhác

Tạo đối tượng Loadvas

Cú pháp : var <doi_tuong>: LoadVars = new Loadvars()

VD : Khai báo một biến Loadvar, tên dt

Var dt: LoadVars = new Loadvars()

Lệnh load(): Dùng để tải tập tin biến vào đối tượng Loadvars

Cú pháp : <doi_tuong>.load(tap_tin.txt)

Trang 13

VD: tải tập tin “bien.txt” vào đối tượng dt

Trang 14

III Tìm hiểu một số vấn đề về AS

1 Các câu lệnh điều kiện, vòng lặp :

1.1 Các câu lệnh điều kiện :

a Câu lệnh if : Kiểm tra cho biết một điều kiện là true hoặc false, nếu đúng thực hiện

trong khối lệnh if, nếu sai không thực hiện lệnh trong khối lệnh đó

b Câu lệnh if… else : Kiểm tra nếu điều kiện if mà sai thì thực hiện dòng lệnh else

Dùng while, do while, for, và for in các action để tạo các vòng lặp

Để lặp lại một action while một điều kiện tồn tại:

a Dùng câu lệnh while :

Một vòng lặp while đưa về giá trị một biểu thức và thực thi code trong thân của vòng lặp nếu biểu thức là true Sau khi từng câu lệnh trong thân được thực hiện, biểu thức đượcxem lại một lần nữa

Trong ví dụ sau, vòng lặp thực thi bốn lần:

Trang 15

Đa số các vòng lặp dùng vài loại bộ đếm để điều khiển làm thế nào nhiều lần vòng

lặp thực thi Từng sự thi hành của một vòng lặp được gọi là một sự nhắc lại Bạn có thể công bố một biến và viết một câu lệnh tăng hoặc giảm biến mỗi lần vòng lặp thực thi Trong action For, bộ đếm và câu lệnh các sự gia tăng bộ đếm là phần của action Trong ví

dụ sau, biểu thức đầu tiên (var i = 4) là biểu thức ban đầu đó, được đánh giá trước sự nhắc lại đầu tiên Biểu thức thứ hai (i>0) là điều kiện được kiểm tra mỗi lần, trước khi vòng lặp chạy Biểu thức thứ ba (i- -) được gọi post biểu thức và được đánh giá mỗi lần sau khi vòng lặp chạy

for (var i = 4; i>0; i- -){

myMC.duplicateMovieClip("PhimMoi" + i, i + 10);

}

Để lặp xuyên suốt children của một movie clip hoặc object:

c Dùng câu lệnh for in

Children có chứa các movie clip, các function, các object, và các biến khác

2 Xây dựng trò chơi “Phi Thuyền Không Gian”

Trong phần này chúng ta sẽ tìm hiểu AS thông qua một trò chơi đơn giản là trò chơi phithuyền không gian :

2.1 Xây dựng các nhân vật trong trò chơi và kịch bản trò chơi :

Xây dựng nhân vật và kịch bản trong trò chơi là một điều thiết yếu khi xây dựng một

trò chơi, trong trò chơi này, về cơ bản tên trò chơi đã nói lên hầu hết các nhân vật trongtrò chơi

- Nhân vật chính của chúng ta là một phi thuyền có nhiệm vụ bảo vệ trái đất khỏi sựlược của các phi thuyền ngoài hành tinh đến để xâm lược trái đất ta có một phi thuyền.Phi thuyền này do chính người chơi điều khiển Một điều nữa để đơn giản trò chơi chúng

ta giả sử rằng tốc độ di chuyển của tàu và phi thuyền lạ theo chiều Oy là giống nhau dovậy phi thuyền chỉ có thể di chuyển sang trái hoặc sang phải để nã đạn vào phi thuyền lạ

Trang 16

- Nhân vật thứ hai là các phi thuyền lạ, một phần hấp dẫn không thể thiếu trong tròchơi Nhiệm vụ các phi thuyền này là : bay lượn trong không gian, chờ thời cơ tấn côngphi thuyền bảo vệ trái đất các phi thuyền này có số lượng áp đảo phi thuyền trái đất domức độ khó và do tính duy nhất chỉ một người chơi trong trò chơi Flash này

- Điều quyết định thứ ba để ta có thể tiến hành trò chơi được đó là phi thuyền chínhphải chứa đạn để bắn vào kẻ thù Sau khi đã đẩy lùi các phi thuyền xâm lược trở lạikhông gian, phi thuyền chính sẽ phải dùng đến đạn LAZE để bắn đối phương các tên lửagắn vào phi thuyền không thể hoạt động được Hành trình của đạn LAZE chỉ có thể đi lêntrên và chờ khi bắn trúng hoặc quá biên thì phi thuyền chính mới có thề bắn lại được

- Một vấn đề là làm sao nhìn thấy các phi thuyền di chuyền trong không gian Vấn đềnày giải quyết khá đơn giản bằng cách tạo ra một số ngôi sao di chuyển xuống biên dưới

để đánh lừa thị giác cảm nhận các phi thuyền đang đi lên

2.2 Xây dựng từng phần của trò chơi :

2.2.1 Xây dựng cách thức hoạt động của các ngôi sao tạo nền:

Tạo một movie có tên là star_mc Trong Library nhấp chuột phải và phim này vàchọn properties -> Advance -> trong linkage tích vào Export for ActionScript Mục đíchcủa hành động này để tạo kết nối giữa Library với AS, chúng ta có thể gọi trực tiếp moviekhi trên timeline không có mặt movie này

Trang 17

Tạo thuộc tính cho các ngôi sao khi trò chơi bắt đầu đến khi kết thúc Mỗi ngôi sao xẽ

di chuyển đi xuống đều với những tốc độ khác nhau, xuất hiện ở những chỗ khác nhaunhư vậy phải sử dụng đên các hàm Math.random() hàm này tạo ra các số random từ 0 ->

1 do tốc độ thế là quá chậm nên ta phải nâng tốc độ lên bằng cách nhân với một số nào đólớn hơn 1 Mặt khác do những ngôi sao này càng về xa thì độ sáng tối khác nhau nêndùng thuộc tính _alpha làm sáng hoặc mờ các ngôi sao một cách ngẫu nhiên Các lệnh

this._x, this._y cho ta biết tọa độ x,y của movie

Nói thêm về câu lênh this : Nó thuộc về vấn đề TAGET của một movie

+ this để nói về level hiện hành nếu code đặt trong timeline chính thì level là 0còn nếu đặ trong movie thi level là 1 Trong một movie ta dùng this để thay cho tênmovie

+ _parent giả sử bạn có 2 movie clip được lồng vào nhau có nghĩa là movie này

có level lớn hơn hoặc bằng 2 để gọi từ level 1 tới level 2 dùng _parent

+ _root gọi level timeline chính level 0

this._x = Math.random()*599+1; // Xuất hiên ở các vị trí từ 1-> 600

this._y = 0; // Ban đầu tốc độ di chuyển xuống = 0

this._alpha = Math.random()*80+20; // tạo độ sáng tối từ 20 đến 100}

this.khoitao(); // Khởi tạo cho từng sao

this.onEnterFrame = function()

{

this._y = this._y+this.speed;

Ngày đăng: 05/08/2013, 14:29

HÌNH ẢNH LIÊN QUAN

Bảng giá trị của các toán tử logic - Tìm hiều về lập trình hướng đối tượng  trong ActionScrip
Bảng gi á trị của các toán tử logic (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w