Cơ bản về Script cha và đối tợng con(child object)

Một phần của tài liệu Công nghệ shockwave trên internet (Trang 29 - 33)

Một script cha là một tập các hàm xử lý và thuộc tính đợc dùng để xác định một

đối tợng con; chính nó không phải là một đối tợng con. Một đối tợng con là một thể hiện đầy đủ và độc lập của script cha. Các đối tợng con của cùng một script cha có các hàm xử lý và các thuộc tính tơng tự nhau, vì vậy các đối tợng con trong cùng một nhóm trả lời các sự kiện và thông báo tơng tự nhau.

Thông thờng, script cha đợc dùng để xây dựng các đối tợng con. Những đối t- ợng con này khi phim đòi hỏi cùng một cơ chế xử lý đợc chạy đồng thời nhng khác nhau về tham số.

Bởi vì tất cả đối tợng con của cùng một script cha có các hàm xử lý giống nhau, những đối tợng con đáp ứng các sự kiện theo cách tơng tự nhau. Tuy nhiên, bởi vì mỗi đối tợng con chứa các giá trị độc lập cho các thuộc tính khai báo trong

script cha, nên mỗi đối tợng con có thể hoạt động khác nhau.

Lấy ví dụ,, ta có thể tạo một script cha trong đó mô tả các text field có thể soạn thảo đợc với các thuộc tính nh màu, chữ Bằng cách thay đổi các giá trị của…

các thuộc tính trong các đối tợng con cụ thể, ta có thể thay đổi các đặc điểm của chúng trong khi phim đang chạy mà không ảnh hởng đến nhau.

Sự khác nhau giữa đối tợng con (child object) và behavior (hành vi)

Mặc dù đối tợng conbehavior tơng tự nhau vì chúng có thể có nhiều thể hiện, chúng cũng có nhiều điểm khác biệt. Sự khác biệt lớn nhất giữa đối tợng con

behaviorbehavior đợc gán với sprite. Các đối tợng behavior đợc tự động tạo ra khi sprite đợc tạo ra. Ngợc lại, đối tợng con phải đợc tạo ra một cách tờng minh bởi một hàm xử lý.

Behavior và đối tợng con khác nhau ở cách chúng đợc gán với sprite. Director tự động gán một behavior với một sprite, nhng ta phải gán một đối tợng con bằng lệnh Lingo.

Viết một script cha

Một script cha chứa các lệnh Lingo cần thiết để tạo các đối tợng con và xác định các hành động và thuộc tính cho chúng. Trớc hết ta cần xác định xem các đối t- ợng con sẽ hành động nh thế nào. Sau đó ta có thể viết một script cha để thể hiện. Trong script cha, khai báo các biến và các thuộc tính, sau đó khởi tạo chúng trong hàm on new. Viết thêm các hàm xử lý để điều khiển các hành động của các đối tợng con.

Dùng biến me

Thông thơng, một script cha tạo ra nhiều đối tợng con, và mỗi đối tợng con có hơn một hàm xử lý. Thuật ngữ me là một biến tham số đặc biệt. Nó luôn phải là tham số đầu tiên đợc khai báo trong mỗi hàm xử lý trong một script cha.

Biến me báo cho các hàm xử lý trong đối tợng con rằng chúng chỉ thao tác trên những thuộc tính của nó chứ không phải là của đối tợng khác. Theo cách này, khi một hàm xử lý trong một đối tợng con tham chiếu đến các thuộc tính, thì sẽ dùng các giá trị của thuộc tính bên trong chính nó.

Tạo một đối tợng con

Đối tợng con tồn tại hoàn toàn trong RAM; chúng không đợc lu lại cùng với phim. Chỉ có script chaancestor script tồn tại trên đĩa.

Để tạo một đối tợng con mới, ta dùng hàm new và gắn đối tợng con với một tên biến hay vị trí trong một list để có thể truy nhập đến sau này.

Để tạo ra một đối tợng con và gán với một biến, dùng cú pháp: set variableName = new(script "scriptName", argument1,

, argument2, argument3...)

trong đó scriptName là tên của script cha và argument1, argument2, argument3... là các tham số ta truyền cho đối tợng con bằng hàm on new . hàm new() tạo một đối tợng con mà lớp cơ sở của nó là scriptName. Sau đó nó gọi hàm on new trong đối tợng con với các tham số xác định.

Ta có thể gọi một hàm tạo mới ở bất kỳ đâu trong một phim. Có thể đặt các giá trị ban đầu của đối tợng con bằng cách thay đổi các tham số đầu vào trong hàm

new().

Mỗi đối tợng con chỉ yêu cầu đủ bộ nhớ để lu các giá trị hiện tại của các thuộc tính của nó và tham chiếu đến script cha. Bởi vì thế, trong hầu hết các trờng hợp, ta có thể tạo ra và duy trì bao nhiêu đối tợng con tuỳ thích.

Muốn tạo đối tợng con mà không phải khởi tạo các giá trị thuộc tính, dùng hàm

rawNew(). Hàm rawNew() thực hiện mà không gọi hàm on new. Trong trờng hợp khi mà cần nhiều đối tợng con, rawNew() cho phép ta tạo các đối tợng trớc và chỉ gán các giá trị khi cần dùng đến.

Câu lệnh dới đây tạo ra một đối tợng con từ script cha Car mà không khởi tạo các giá trị thuộc tính và gán vào biến car1:

car1 = script("Car").rawNew()

Để khởi tạo các thuộc tính đối tợng con, gọi hàm on new :

car1.new (adsbygoogle = window.adsbygoogle || []).push({});

Kiểm tra các thuộc tính của đối tợng con

Ta có thể kiểm tra giá trị của thuộc tính trong đối tợng con bằng cách sử dụng cú pháp: objectName.PropertyName. Ví dụ, dòng lệnh sau gán vào một biến x giá trị của thuộc tính carSpeed của đối tợng con đợc gán vào biến car1:

x = car1.carSpeed

Gọi các thuộc tính của đối tợng từ bên ngoài có thể có ích khi cần thông tin về một nhóm các đối tợng, nh là tốc độ trung bình của tất cả các xe trong một cuộc đua. Ta cũng có thể dùng các thuộc tính của một đối tợng để xác định hành vi của đối tợng khác phụ thuộc vào nó.

Ngoài ra có thể kiểm tra xem một đối tợng con chứa một hàm cụ thể nào đó hay kiểm tra xem nó xuất phát từ script cha nào. Điều này có ích ta có nhiều đối tợng xuất phát từ nhiều script cha tơng tự nhau nhng có vài điểm khác biệt nhỏ.

Ví dụ, ta muốn tạo một kịch bản trong đó một một trong vài script cha có thể đợc dùng để tạo một đối tợng con. Ta có thể xác định xem một đối tợng con đợc tạo ra từ script cha nào bằng hàm script(), hàm này trả lại tên script cha.

Câu lệnh sau kiểm tra xem có phải đối tợng car1 đợc tạo ra từ script cha Car:

if car1.script = script("Car") then beep

Ta cũng có thể lấy một danh sách các hàm xử lý trong một đối tợng con bằng cách dùng hàm handlers(), hay kiểm tra xem một hàm xử lý tồn tại trong một đối tợng đối tợng con bằng hàm handler().

Các lệnh sau gán một danh sách các hàm xử lý đối tợng con car1 vào biến myHandlerList:

myHandlerList = car1.handlers()

Danh sách có dạng nh sau:

[#start, #accelerate, #stop]

Còn các lệnh sau lại dùng hàm handler() để kiểm tra xem có hàm xử lý on accelerate trong đối tợng con car1:

if car1.handler(#accelerate) then

put "The child object car1 contains the handler named “ on accelerate."

Phần II: Công nghệ shockwave trên internet

Chơng 4 : Dịch vụ thông tin World Wide Web

Trong thời gian gần đây, một trong những dịch vụ hấp dẫn và đợc quan tâm nhiều nhất trên Internet chính là World Wide Web. Đây là dịch vụ thông tin mới ra đời nhng lại phát triển nhanh nhất, tạo nên một tiềm năng to lớn trong việc phổ biến thông tin toàn cầu, góp phần thúc đẩy xã hội loài ngời bớc vào kỷ nguyên mới của khoa học kỹ thuật, kỷ nguyên của Công nghệ thông tin. Trong chơng này, tôi xin đợc trình bày những đặc điểm khiến cho World Wide Web đã trở nên quan trọng đến nh vậy.

Một phần của tài liệu Công nghệ shockwave trên internet (Trang 29 - 33)