Tải bản đầy đủ (.doc) (76 trang)

Tìm hiểu về Macromedia director 8

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 (463.26 KB, 76 trang )

Mục lục
Phần I: Tìm hiểu về Macromedia Director 8....................4
Chơng 1: Cơ bản về Director 8.......................................4
I.Giới thiệu về Macromedia Director..................................................................4
Có gì đặc biệt trong Director?.........................................................................4
Shockwave: đa sản phẩm Director lên mạng................................................5
II.Các thành phần của Director..........................................................................5
Cửa sổ cast.....................................................................................................5
Stage..............................................................................................................6
Cửa sổ Score..................................................................................................6
Sprite..............................................................................................................7
Sprite Span.....................................................................................................7
Sprite Overlay.................................................................................................8
Khung hình.....................................................................................................8
Kênh...............................................................................................................8
Kênh Tempo...................................................................................................9
Kênh palette...................................................................................................9
Kênh Transtion.............................................................................................10
Hai kênh âm thanh.......................................................................................10
Kênh script ...................................................................................................10
Control Panel................................................................................................11
III.Các kỹ thuật tạo hoạt hình trong Director....................................................11
Kỹ thuật Tweening trong Director.................................................................12
Thay đổi đờng đi của một sprite...............................................................12
Chuyển đổi các thành phần cast của một sprite......................................13
Hoạt hình theo kỹ thuật thay đổi khung hình (Frame-by-frame animation)..14
Nhanh chóng tạo hoạt hình dùng nhiều thành phần cast............................15
Sử dụng Cast to Time ..............................................................................15
Sử dụng lệnh Space to Time....................................................................15
Sử dụng film loop......................................................................................15
Tạo hoạt hình dùng lệnh Lingo.....................................................................16


Chơng 2: Lingo script trong Director.............................17
I. Sơ qua về Lingo............................................................................................17
Các loại Lingo script.....................................................................................19
Các hàm xử lý sự kiện của hệ thống (system handler)................................20
Thứ tự phân cấp các thông báo....................................................................21
Truyền các thông báo sự kiện......................................................................22
II. Các kiểu biến trong Director........................................................................23
Biến cục bộ...................................................................................................23
Biến toàn cục................................................................................................23
Kiểu danh sách.............................................................................................24
Kiểu số nguyên (integer)..............................................................................26
Kiểu số thập phân........................................................................................26
Kiểu biểu tợng...............................................................................................26
III. Dùng các Xtras để mở rộng chức năng của Director..................................27
1
Các kiểu Xtras..............................................................................................27
Lu trữ trong các file ngoài dùng FileIOXtra..................................................27
Chơng 3: Lập trình hớng đối tợng bằng Lingo..............29
I. So sánh với các ngôn ngữ hớng đối tợng khác.............................................29
II. Cơ bản về Script cha và đối tợng con (child object)....................................29
Sự khác nhau giữa đối tợng con (child object) và behavior (hành vi)..........30
Viết một script cha........................................................................................30
Dùng biến me...............................................................................................30
Tạo một đối tợng con....................................................................................30
Kiểm tra các thuộc tính của đối tợng con.....................................................31
Phần II: Công nghệ shockwave trên internet................33
Chơng 4 : Dịch vụ thông tin World Wide Web..............33
I. Nguồn gốc ra đời của World Wide Web........................................................33
II. Kiến trúc của World Wide Web....................................................................34
Web Server...................................................................................................34

Web Browser................................................................................................34
Khái niệm HTTP...........................................................................................35
Khái niệm HTML...........................................................................................36
III. Tích hợp các dịch vụ thông tin trong WWW...............................................36
World Wide Web và Gopher.........................................................................36
World Wide Web và FTP..............................................................................37
World Wide Web và WAIS...........................................................................37
Tích hợp các dịch vụ khác trong World Wide Web......................................38
IV. ứng dụng của Web....................................................................................39
Website trên Internet...................................................................................39
ứng dụng của Web.......................................................................................41
V. Giới thiệu về CGI (common gateway interface).........................................42
Giới thiệu chung............................................................................................42
Lập trình CGI là gì?......................................................................................43
HTML, HTTP và chơng trình CGI.................................................................43
Các th mục trên server.................................................................................45
Mẫu lập trình CGI.........................................................................................47
Các chơng trình CGI và vấn đề bảo mật......................................................47
Truyền thông giữa server và browser...........................................................49
Chơng 5: Công nghệ Shockwave..................................51
I. Lingo cho hoạt động trên Internet.................................................................52
Lấy dữ liệu từ mạng......................................................................................52
Kiểm tra trạng thái của hoạt động backgroundloading................................53
Streaming multimedia...................................................................................54
II. Sử dụng URL với Lingo................................................................................54
III. Điều khiển trình duyệt.................................................................................55
Những điểm khác khi dùng Lingo trong trình duyệt......................................55
Scripting trên trình duyệt..............................................................................55
IV. Lingo giao tiếp với trình duyệt....................................................................56
Phần III: xây dựng Chơng trình......................................57

2
Ch¬ng 6: Ph©n tÝch ch¬ng tr×nh....................................57
I. Néi dung ch¬ng tr×nh:....................................................................................57
II. Tæng thÓ ch¬ng tr×nh....................................................................................58
Ch¬ng 7: X©y dùng ch¬ng tr×nh.....................................58
I. Phim left.dir...................................................................................................58
CÊu tróc d÷ liÖu............................................................................................61
Ho¹t ®éng cña ch¬ng tr×nh...........................................................................66
II. Phim suamenu.dir:.......................................................................................72
Ho¹t ®éng cña ch¬ng tr×nh..........................................................................73
Ch¬ng 8: §¸nh gi¸ vµ híng ph¸t triÓn...........................76
I. C¸c kÕt qu¶ ®¹t ®îc......................................................................................76
II. Híng ph¸t triÓn.............................................................................................76
III. Tham kh¶o..................................................................................................76
1..........................................................................76
2. ..........................................................................76
3
Phần I: Tìm hiểu về Macromedia Director 8
Chơng 1: Cơ bản về Director 8
I.Giới thiệu về Macromedia Director
Chơng trình multimedia là một chơng trình tích hợp cả văn bản, âm thanh, hình
ảnh. Để tạo ra những chơng trình mulitmeda sống động đòi hỏi phải có các công
cụ chuyên để tạo lập chúng. Macromedia Director là một công cụ phục vụ cho
mục đích này.
Director là một công cụ chuẩn công nghiệp để xây dựng các sản phẩm
multimedia và các ứng dụng chạy trên mạng Internet hay cũng nh mạng
intranet. Director không chỉ có khả năng kết hợp các phần tử để tạo ra các sản
phẩm, mà còn cung cấp khả năng lập trình mềm dẻo bằng ngôn ngữ Lingo
Scrpt để tạo các hiệu quả mong muốn. Hiện nay, Director đợc dùng rộng rãi để
tạo ra các trang WEB multimedia, các chơng trình dạy học, các trò chơi trên máy

tính.
Bởi vì Director có khả năng kết hợp âm thanh cũng nh hình ảnh tĩnh và động,
ngời ta gọi các sản phẩm của nó là multimedia (đa phơng tiện). Trên thị trờng
đĩa CD-ROM, Director là một công cụ tạo lập tiêu chuẩn. Một vài công cụ
multimeda đang đợc sử dụng để tạo ra các sản phẩm trên đĩa CD, nhng
Macromedia đã lên tục cải tiến và nâng cấp sản phẩm để đáp ứng nhu cầu cho
Internet/intranet. Director 8 có các chức năng tiện lợi để đa multimedia lên
mạng.
Có gì đặc biệt trong Director?
Director đi tiên phong trong lĩnh vực tạo multimedia, nhng cũng có rất nhiều
đối thủ cạnh tranh nh: SuperCard, Apple Media Toolkit, và Quark/mFactory,
mTropolis, và ngay cả sản phẩm cùng hãng : Authorware Professional. Vậy điều
gì đã làm cho Director giữ đợc vị trí dẫn đầu của mình? Đó là do các u điểm của
nó nh:
Khả năng tạo ảnh động
Director tạo ảnh chuyển động bằng kỹ thuật thay thế các thành phần trong
từng lớp và trình diễn chúng qua từng khung hình một (frame-by-frame). Điều
này có thể đòi hỏi thời gian phát triển dài nhng bù lại là ta có vật thể chuyển
động thật hơn.
Khả năng chạy trên nhiều hệ thống
Không phải tất cả các phần mềm đều có thể chạy trên mọi máy tính. Có nhiều
loại hệ điều hành khác nhau, và hầu hết phần mềm đợc thiết kế để tơng thích
với một trong các hệ điều hành đó. Một vài sản phẩm phần mềm đợc di
chuyển từ một hệ thống sang hệ thống khác (th ờng là Macintosh sang
Windows, và ngợc lại), nhng những phiên bản đợc chuyển này đòi hỏi phải đợc
viết lại rất nhiều.
Khi thị trờng multimedia hình thành, các nhà phát triển gặp phải một chút băn
khoăn. Đó là do Macintosh cung cấp khả năng đồ hoạ cao, vì thế nó là hệ điều
4
hành đợc các nhà thiết kế chọn lựa, nhng với mục tiêu là số lợng ngời dùng thì

Windows vợt hẳn. Có thể kết hợp những mặt tốt của cả hai? Bằng cách xây
dựng multimedia trên Macintosh và sau đó chuyển sang Windows.
Director có thể làm cho quá trình trên trở nên đơn giản. Hiện nay, Director có
hai phiên bản chạy trên Macintosh và trên Windows, và các file đợc tạo ra trên
hệ điều hành này có thể đợc mở trực tiếp từ Director trên hệ điều hành kia. Quá
trình chuyển đổi mặc dù không đợc trơn tru lắm nhng cũng ăn đứt việc viết lại
chơng trình.
Shockwave: đa sản phẩm Director lên mạng
Với sự phát triển của công nghệ Shockwave, mọt phim Director có thể đợc đa
lên trang web một cách đơn giản: ngời dùng có thể tơng tác với phim Director
trong trang web. Chuyển từ phim Director thành dạng Shockwave rất dễ dàng và
chỉ đòi hỏi một chút hiều biết.
Trong môi trờng tơng tác trực tuyến, đối thủ cạnh tranh chính của Shockwave
là Java - và Java có một số u điểm so với Shockwave. Nhng java đòi hỏi phải
tạo multimedia từ đầu, trong khi Shockwave chỉ đơn giản đợc chuyển từ Director
sang. Phim dạng Shockwave đợc nhúng vào trang Web ( nh Java Applet ) và
chạy đợc nhờ vào một plug-in riêng.
II.Các thành phần của Director
Director cung cấp hai loại cast là cast bên trong (internal cast) và cast ngoài
(external cast) và chúng đợc phân loại thành cast âm thanh, cast hình ảnh,
video, cast, văn bản hoặc thành cast nút bấm, cast thủ tục...
Cửa sổ cast
Cửa sổ cast thể hiện các cast hiện có, cho phép ngời lập trình tạo mới các cast
hay các cast thành phần, soạn mới một cast, đặt các thuộc tính cho cast, viết
các thủ tục cho cast thành phần, xem số hiệu và tên cast thành phần, kéo thả
một cast thành phần vào stage,...
5
Để hiển thị các dữ liệu trên màn hình, Director phải truy nhập tới cơ sở dữ liệu
của ứng dụng. Đối với các phim đợc tạo bằng máy tính, cast bao gồm một số
phần tử cơ bản (media element) nh đồ hoạ, âm thanh, văn bản, các file 3D,

video số và các phim Director. Các loại dữ liệu khác của cast nh các bảng màu
tự tạo, các thủ tục đợc nhập từ ngoài hoặc đợc tạo ra trong quá trình làm việc với
Director. Những cast này là cast ngoài, nhng ta vẫn có thể truy nhập chúng từ
cửa sổ cast.
Stage
Stage là nơi trình diễn của phim, mọi cái ngời dùng có thể nhìn thấy và điều
khiển đều diễn ra ở stage
Trớc khi xây dựng một ứng dụng, ta cần xác định kích thớc của stage. Việc thay
đổi kích thớc của stage sau khi xây dựng ứng dụng hay sau khi kết thúc công
việc là một điều rất bất lợi. Để thay đổi kích thớc của stage, ta sử dụng hộp
thoại movie Properties bằng cách chọn menu Modify->Movie->properties. Kích
thớc mặc định của stage là 640x480. Trong Director cũng có một thuộc tính
dùng để hiển thị phim trên toàn bộ màn hình (stage sẽ chiếm toàn bộ màn hình)
đó là full screen.
Ta cũng có thể sử dụng hộp thoại Movie Properties để thay đổi màu của stage.
Trong hộp thoại này, kích vào ô bên cạnh stage color, một bảng màu sẽ hiện ra
cho ta lựa chọn. Ngoài ra, ta có thể thay đổi màu của stage bằng lệnh Lingo.
Nháy đúp chuột vào kênh script trong score sau đó đa thêm dòng lệnh sau vào
vị trí cần thiết
Set the stagecolor to color_num
Cửa sổ Score
6
Playback head
Sprite trong
score
Score là trung tâm điều khiển của Director, nó phản ánh tình trạng, nội dung của
stage và các đối tợng đặt trên stage trong một khung hình nhất định nào đó. Có
thể nói score chính là biểu diễn của phim.
Sprite
Là hiện diện của một cast thành phần trên stage. Mỗi ô (cell) của score chứa

thông tin về một cast thành phần tại một thời điểm và đợc gọi là một sprite. Tại
mỗi thời điểm, Director 8 cung cấp tới 1000 kênh sprite và nó cho phép tắt
các kênh không cần thiết để tối u quá trình thực hiện. Vị trí của sprite đợc xác
định dựa vào gốc toạ độ ( góc trái trên cùng của stage).
Sprite không phải là một cast thành phần mà chỉ chứa thông tin liên quan tới
cast thành phần đó trên stage, nh vị trí hiển thị, các hiệu ứng đặc biệt, .... mỗi
sprite chiếm một vùng hình chữ nhật trên stage. Mỗi khi ta đặt một cast thành
phần vào stage, một sprite sẽ xuất hiện trong score và ngợc lại, khi ta đặt một
cast thành phần vào score nó cũng tự động đợc đặt vào stage.
Khi thực hiện, score của Director sẽ kiểm tra xem cast thành phần nào đợc hiển
thị trên stage và truy cập các thông tin về nó tại mỗi thời điểm ( điều này toạ
điều kiện trong quá trình xử lý ảnh động). Khi chuyển sang khung hình tiếp theo,
Director sẽ đọc score, kiểm tra các thông tin của các sprite và phát hiện ra các
sprite có thay đổi. Khi đó, Director chỉ cần đọc dữ liệu từ các cast thành phần t-
ơng ứng và hiển thị nó lên màn hình. Score của Director có tới 1000 kênh sprite
nên tại mỗi thời điểm nó có thể hiển thị 1000 sprite lên stage.
Mỗi sprite có thể có nhiều kích thớc, hình dạng khác nhau trong phim, các thuộc
tính này thay đổi đợc mặc dù phim vẫn truy nhập đến cùng một cast thành phần
của cast và cast thành phần đó không thay đổi. Mỗi cast thành phần có thể xuất
hiện nhiều lần trong phim, tức là chiếm nhiều sprite, nhng nó vẫn chỉ chiếm một
vị trí trong cửa sổ cast.
Ngời ta thờng dùng lệnh Lingo để thay đổi các thuộc tính của sprite khi ngời
dùng có tơng tác với phim. Thông thờng ta truy cập sprite bằng số hiệu của nó.
Director 8 chứa nhiều loại sprite hơn các phiên bản trớc, nh :
Sprite Span
Mỗi sprite chiếm giữ một ô và ta phải dùng In-between Sprite dọc theo score khi
ta muốn nhìn thấy chúng trên stage. Trong Director ta có thể dùng các lệnh In-
Between Linear và In-Between Special để tạo các hình ảnh động và các hoạt
động trên stage tại bất kỳ thời điểm nào.
Director xem các sprite nh các đối tợng trong một khoảng thời gian xác định. Khi

ta kéo một cast thành phần vào stage, sprite đã tạo ra sẽ chiếm 28 khung, mỗi
7
khung chứa một thể hiện xác định của sprite. Giá trị mặc định này có thể thay
đổi trong một hộp thoại sprite preferences.
Khi ta dịch chuyển một sprite trên stage, mọi thể hiện của sprite đó trong Sprite
Span cũng dịch chuyển theo. Nếu ta kích vào một ô trên score, không phải chỉ
một ô mà toàn bộ sprite ta vừa chọn sẽ sáng lên. Tơng tự nếu ta dịch chuyển
này trong score toàn bộ sprite sẽ dịch chuyển. Nếu ta muốn soạn thảo các
khung riêng biệt trong một sprite, nh trong các phiên bản trớc, ta có thể chọn
Edit->edit sprite frames. Khi soạn thảo ở chế độ này, việc cập nhật sẽ diễn ra
trong từng ô riêng biệt. Để đa chúng trở lại thành sprite span hoàn chỉnh, ta chọn
các sprite này trên menu Edit->Edit entire sprite. Dùng lựa chọn này, việc soạn
thảo sẽ làm thay đổi toàn bộ sprite span. Ta có thể thày đổi số khung mà sprite
span từ 28 đến một giá trị tuỳ ý bằng cách dùng hộp thoại Sprite Preferences.
Để làm việc với từng sprite nh trong phiên bản trớc đổi span duration về 1.
Sprite Overlay
Nếu bật Sprite Overlay, ta có thể nhìn trực tiếp thông tin về sprite trong một hình
chữ nhật nhỏ, trong suốt nằm dới sprite trên stage. Sprite Overlay hiển thị tự
động thông tin sprite.
Ta không cần mở hộp thoại Sprite Properties để soạn thảo các thuộc tính của
sprite. Ta có thể dùng Sprite Overlay và Sprite inspector với nhau để soạn trực
tiếp các sprite trên stage. Nếu ta cần mở hộp thoại Sprite Properties cho các
ứng dụng khác, ta có tể nhanh chóng mở nó từ nút có chữ I màu đỏ trong Sprite
Overlay. Ta cũng có thể mở trực tiếp hộp thoại Cast Member Properties và
Behavior inspector từ Sprite Overlay.
Để thay đổi các thiết lập Sprite Overlay, mở hộp thoại Overlay Settings từ menu
View, Sprite Overlay, Settings.
Khung hình
Khung hình đợc hiển thị trong stage dới dạng một cột. Mỗi cột gồm có 1000
hàng. Mỗi hàng là một trong 1000 kênh của score. Số lợng khung hình không

hạn chế. Ta có thể nhìn thấy soó hiệu khung hình hiện thới đang dợc hiển thị
trên score hoặc control panel của Director.
Mỗi khung hình hiển thị một cảnh nào đó khi Director đọc tới vị trí khung hình đó
trong cửa sổ score. Theo mặc định, Director sẽ đọc qua tất cả các khung hình
cho đến hết phim, đây chính là nguyên tắc của các phim tuyến tính. Ta có thể
tạo một phim Director chỉ có một khung hình nhng trong trờng hợp đó ta phải
dùng các lệnh Lingo để tạo các thay đổi cần thiết.
Kênh
Mỗi kênh là một hàng trong score, Director cung cấp cho ta 1000 kênh. Thông
tin chứa trong các kênh đều có ảnh hởng tới việc hiển thị các khung hình trên
stage. Thông tin đó bao gồm tốc độ phim, các pallette màu, các hiệu ứng
chuyển đổi (transition), âm thanh, các thủ tục Lingo, và các vị trí của sprite trên
stage.
8
Kênh tempo
Kênh palette
Kênh transition
Kênh âm thanh
Kênh behavior
Kênh sprite
Kênh Tempo
Kênh Tempo đợc dùng để đặt các thuộc tính về thời gian đợi cho phim. Với kênh
Tempo ta có thể đặt tốc độ cho phim (fps/frame per second), khoảng thời gian
đợi cho khung hình đố tính theo giây, đợi một sự kiện phím bấm hoặc nhấy
chuột, đợi kênh âm thanh 1 hoặc 2 kết thúc, đợi một kênh Video nào đó kết thúc.
Dùng kênh tempo rất đơn giản và nhanh gọn, tuy nhiên nó chỉ cho phép tạo các
phim dới dạng trình diễn (presentation) hay còn gọi là các phim tuyến tính. Các
thuộc tính đặt trong kênh tempo cũng có thể thay đổi bằng các lệnh Lingo, lệnh
Lingo cho phép tạo ra các tơng tác trong chơng trình. Ta có thể đặt tốc độ cho
phim làm cho phim chuyển động nhanh hay chậm tuỳ ý.

Kênh palette
Kênh palette dùng bảng màu đã đợc kích hoạt để thay đổi bảng màu và thực
hiện các hiệu ứng màu trong phim. Nháy đúp vào kênh Palette của một khung
hình , ta sẽ xem đợc bảng màu hiện thời của khung hình đó. Khi sử dụng kênh
palette, ta cần quan tâm đến các vấn đề sau:
Độ phân giải màu: Liên quan tới số lợng màu trên màn hình. Ta kiểm tra độ
phân giải màu bằng lệnh put the colorDepth, kết quả nhận đợc sẽ là độ phân
giải màu hiện thời. Director cho phép xây dựng các phim có độ phân giải màu 32
bit
Chuyển đổi giữa các bảng màu: Giả sử máy của ta hiển thị đợc 256 màu và ta
dùng scanner để quét ảnh dùng trong ứng dụng, khi đó ta cần chuyển đổi các
ảnh về mức 256 màu. Nếu các ảnh đợc quét bằng scanner có sốo lợng màu lớn
hơn 256, ta phải dùng các coong cụ soạn thảo đồ hoạ để chuyển chúng về 256
màu.
Khi import một ảnh từ ngoài vào và bảng màu nó dùng không phải bảng màu
chuẩn , ta có theer vẫn giữ nguyên bảng màu đó và coi nó nh một cast thành
phần hoặc ánh xạ bảng màu đó thành bảng màu của hệ thốgn. Nếu giữ nguyên
bảng màu, ta phải đảm bảo khi cast thành phần đó đợc dùng thì bảng màu tơng
ứng của nó phải đợc đặt trong kênh Palette của khung hình mà nó xuất hiện.
Các công việc trên đợc thực hiện bằng cách dùng những lựa chọn trong khung
hội thoại khi ta import ảnh vào.
9
Việc thay đổi bảng màu một cách thờng xuyên là không nên, do đó ta nên dùng
các bảng màu chuẩn hoặc tạo ra các bảng màu của riêng ta để dùng chung cho
tất cả các ảnh trong ứng dụng.
Khi đã có một bảng màu dùng chung, ta chỉ cần đặt nó vào kenh Palette trong
khung hình thứ nhất, bảng màu đó sẽ đợc kích hoạt trong suốt quá trình ứng
dụng chạy nếu ta không kích hoạt thêm một bảng màu nào khác.
Kênh Transtion
Kênh này dùng để đặt các hiệu ứng đặc biệt, chuyển đổi giữa các cảnh trong

phim ta xây dựng. Để đặt các hiệu ứng cho một khung hình nào đó, ta nháy đúp
vào kênh Transition ứng với khung hình đó. Ta có thể đặt các hiệu ứng của kênh
này cho toàn bôj stage hay chỉ cho những phần thay đổi của stage mà thôi. Sau
khi đã đặt hiệu ứng Transition trong một khung hình, Director tự động lu trữ nó
trong cast tơng ứng nh một cast thành phần. Do đó nếu ta không muốn dùng
hiệu ứng chuyển đổi đó nữa ta cần phải xoá cast thành phần của hiệu ứng đó.
Các hiệu ứng Transiton là một trong những nhiệm vụ nặng nề mà CPU phải
thực hiện và nó chiếm khá nhiều bộ nhớ. Thời gian cần thiết để thực hiện hiệu
ứng Transition sẽ làm giảm toàn bộ tốc độ thực hiện của hệ thống.
Hai kênh âm thanh
Macintosh cho phép dùng tới 8 kênh âm thanh trong khi đó Windows chỉ cho
phép dùng hai kênh, những th viện MảcoMix.dll mà Director cung cấp giúp ta
trộn nhiều file âm thanh vào trong một kênh âm thanh.
Trong Score kích đúp vào kênh âm thanh ứng với khung hình ta muốn bắt đầu
đoạn âm thanh, chọn cast âm thanh thành phần muốn dùng, đoạn âm thanh
của cast thành phần đó sẽ bắt đầu chơi từ khung hình ta vừa đặt. Director cũng
cho phép kéo thả các cast âm thanh thành phần từ cast vào một trong hai kênh
âm thanh.
Việc dùng score tỏ ra rất nhanh và tiện lợi nhng nó có nhợc điểm là nó tốn bộ
nhớ và đôi khi không đạt hiệu quả nh mong muốn, trong trờng hợp đó dùng các
lệnh Lingo sẽ hữu hiệu hơn. Kênh âm thanh thứ hai sẽ đợc dùng cho âm thanh
nền, kênh 1 dùng cho các âm thanh đợc điều khiển bằng lệnh puppet sound của
Lingo.
Kênh script
Dùng để chứa các thủ tục viết bằng Lingo, các thủ tục đó chỉ có tác dụng trong
khung hình tơng ứng. Các thủ tục này (còn gọi là các script) đợc gọi là các thủ
tục khung hình (frame script). Thủ tục còn đợc gọi là handler vì các thủ tục này t-
ơng ứng với một sự kiện và nó sẽ thực hiện khi sự kiện tơng ứng xuất hiện.
Để đa vào kênh script, ta nháy đúp chuột vào script của khung hình, ta sẽ nhận
đợc một thủ tục tên là exitframe tơng ứng với sự kiện kết thúc khung hình này và

chuyển sang khung hình tiếp theo.
Mỗi khi bắt đầu một khung hình, các kênh đợc đọc và thực hiện theo thứ tự từ
trên xuống, từ kênh tempo đến kênh script thứ 1000. Những kênh đặc biệt cung
cấp thông tin về các hiệu ứng đặc biệt đợc dùng trong khung hình, còn các script
1 đến 1000 sẽ đợc hiển thị trên stage. Thứ tự các kênh rất quan trọng, kênh thứ
nhất đợc hiển thị đầu tiên sau đó đến kênh thứ hai... Theo thứ tự hiển thị trên
10
stage, ta thấy kênh 1000 đợc vẽ trên cùng chèn lên các kênh khác còn kênh 1
nằm dới cùng. Quá trình này tiếp diễn với tất cả các khung hình.
Control Panel
Bảng điều khiển là một cửa sổ và nó cho phép ngời dùng điều khiển phim trong
môi trờng Director. Các nốt điều khiển của bảng này giống nh các nút điều khiển
của một đầu video. Ngoài ra, bảng điều khiển còn hiển thị và cho phép ta thay
đổi một số thông tin nh khung hình hiện thời, số khung hình/giây, thay đổi tốc độ
phim, đặt chế độ lặp cho phim, điều khiển âm lợng.
Bảng điều khiển rất có ích trong các phim tuyến tính, đặc biệt là trong khi chạy
thử nghiệm để xem khả năng của chơng trình. Nó cũng giúp cho công việc của
ngời lập trình đơn giản đi một chút khi sử dụng các khả năng của nó để điều
khiển các thành phần multimedia mà không cần phải sử dụng các lệnh điều
khiển Lingo.
III.Các kỹ thuật tạo hoạt hình trong Director
Hoạt hình là sự thay đổi của ảnh theo thời gian. Các loại hoạt hình thờng thấy
nhất là di chuyển một sprite trên cửa sổ Stage ( hoạt hình kiểu tweening) và
dùng một loạt các thành phần cast trên cùng một sprite (hoạt hình kiểu frame-
by-frame hay còn gọi là kiểu thay đổi theo khung hình).
Tweening là một thuật ngữ trong kỹ thuật hoạt hình, nó mô tả quá trình trong đó
ngời chỉ đạo vẽ các khung hình chính còn các trợ lý vẽ các hình thay đổi giữa
các hình chính đó.
Kỹ thuật hoạt hình frame-by-frame đòi hỏi tạo ra mỗi khung hình trong phim hoạt
hình.

Các kỹ thuật hoạt hình khác bao gồm thay đổi kích thớc, quay, thay đổi màu,
hay thay đổi độ sáng của một sprite.
Để đặt các thuộc tính trong Tweening, ta dùng hộp thoại Sprite Tweening
Để mở hộp thoại Sprite Tweening :
1 Chọn một sprite
2 Vào Modify > Sprite > Tweening.
11
Kỹ thuật Tweening trong Director
Để dùng kỹ thuật này trong Director, ta xác định các thuộc tính cho một sprite
trong những frame gọi là key frame và để cho Director thay đổi những thuộc tính
trong những frame nằm giữa.
Tweening rất có hiệu quả trong việc thêm hoạt hình vào trang Web, vì nó không
cần download thêm các dữ liệu khi một thành phần cast thanh đổi.
Một keyframe thờng đợc dùng khi có thay đổi trong các thuộc tính của một
sprite. Có thể thay đổi các thuộc tính vị trí, kích thớc, góc quay, độ sáng, màu
nền và màu nổi. Mỗi keyframe xác định một giá trị cho các thuộc tính trên.
Thay đổi đ ờng đi của một sprite
12
Đờng đi của sprite là những đờng biều diễn sự di chuyển trên cửa sổ Stage của
một sprite. Đờng đi của Sprite đợc kiểm soát trong hộp thoại Sprite Overlay
Settings.
Bạn có thể thay đổi đờng đi của một sprite trực tiếp trên cửa sổ Stage bằng cách
kéo-thả các keyframe.
Để thay đổi đờng đi của một sprite:
1. Đặt một sprite trên cửa sổ Stage nơi bạn muốn bắt đầu của đờng đi, nếu
đã có rồi thì chỉ việc chọn nó.
2. Nếu cần chọn View > Sprite Overlay > Show Paths để hiện đờng đi của
sprite
3. Chèn các keyframe vào frame nào mà bạn muốn thay đổi đờng đi
4. Kéo đầu đỏ của đờng đi trên Stage đến chỗ bạn muốn kết thúc đờng đi.

5. Để thay đổi đờng cong trên đờng đi, giữ phím Alt (Windows) hay phím
Option (Macintosh) và dùng chuột kéo trên đờng cong.
6. Muốn thay đổi độ cong giữa các keyframe, chọn Modify > Sprite >
Tweening và điều chỉnh Curvature.
Ngoài việc thay đổi đờng đi của một sprite, Director có thể thay đổi cả kích thớc,
góc quay, độ sáng, màu nền và màu nổi. Thay đổi kích thớc đợc áp dụng tốt
nhất đối với các thành phần cast có dạng vector (vector-based)
Chuyển đổi các thành phần cast của một sprite
Để thay đổi nội dung một sprite mà lại muốn giữ nguyên các thuộc tính khác của
sprite, bạn đổi thành phần cast gắn với sprite đó.Kỹ thuật này rất có ích khi bạn
vừa áp dụng Tweening cho một sprite nhng sau đó lại muốn dùng một thành
phần cast khác. Khi thay đổi thành phần cast, đờng đi không thay đổi
Các bớc để thay đổi thành phần cast trong Score
1 Muốn thay đổi trong tất cả các khung hình của một sprite, chọn toàn
bộ. Nếu không thì có thể chọn một phần.
Chọn một phần bằng cách nhấn phím Alt và click frame đầu tiên muốn chọn.
Sau đó nhấn Control-Alt(Windows) hay Option-Alt(Macintosh) và click các
frame muốn chọn
2 Mở cửa sổ Cast và chọn thành phần cast bạn muốn dùng để thay thế
13
3 Chọn Edit > Exchange Cast Members.
Hình: Trớc khi thay đổi thành phần cast
Hình: Sau khi thay đổi thành phần cast, đờng đi không đổi
Ngoài ra, có thể dùng lệnh Lingo để chuyển đổi thành phần cast của một sprite.
Hoạt hình theo kỹ thuật thay đổi khung hình (Frame-by-frame
animation)
Để tạo ra hoạt hình phức tạp hơn là dùng kỹ thuật Tweening, bạn có thể dùng
một loạt các thành phần cast trong kỹ thuật hoạt hình frame-by-frame.Các
sprite thờng chỉ chứa một thành phần cast, nhng chúng có thể thay đổi thành
phần cast theo từng thời điểm.

Các bớc để tạo hoạt hình của một sprite dùng nhiều thành phần cast:
1 Tạo ra một sprite trên cửa sổ Stage
2 Thay đổi độ dài cần của sprite theo ý muốn
3 Chọn View > Display > Cast Member để hiện tên của mỗi thành
phần cast trên sprite.
4 Vào View > Sprite Labels > Changes Only. Đặt thế này để hiện tên chỉ
khi thành phần cast thay đổi.
5 Vào Edit > Edit Sprite Frames.
6 Sau đó chọn những frame muốn thay đổi thành phần cast
7 Mở cửa sổ Cast và chọn thành phần cast để thay đổi
8 Chọn Edit > Exchange Cast Members.
14
Director thay thế những thành phần cast đợc chọn trên sprite bằng thành phần
cast trong cửa sổ Cast
9 Lặp lại đến khi hoàn thành. Chọn Edit Entire Sprite khi làm xong.
Nhanh chóng tạo hoạt hình dùng nhiều thành phần cast
Cast to Time và Space to Time đợc dùng để tạo hoạt hình một cách nhanh
chóng dùng nhiều thành phần cast
Sử dụng Cast to Time
Để nhét một loạt các thành phần cast vào Score nh là một sprite duy nhất,
dùng lệnh Modify > Cast to Time, đây là một lệnh có ích nhất để tạo hoạt hình
dùng nhiều thành phần cast. Thờng thì bạn tạo một loạt ảnh và sau đó dùng
lệnh Cast to Time để nhanh chóng đặt chúng vào Score nh là một sprite duy
nhất.
Các bớc tạo một sprite từ nhiều thành phần cast:
1 Chọn frame trên Score nơi muốn đặt sprite mới
2 Mở cửa sổ Cast
3 Chọn các thành phần cast để đặt trên sprite mới tạo ra.
4 Vào Modify > Cast to Time
Sử dụng lệnh Space to Time

Muốn chuyển các kênh lân cận vào một sprite,ta dùng lệnh Modify > Space to
Time. Phơng pháp này tiện lợi khi bạn muốn xếp một vài ảnh trên cửa sổ Stage
vào một frame và chuyển thành một sprite.
Để dùng lệnh Space to Time :
1 Vào File > Preferences > Sprite và đặt Span Duration bằng 1 frame.
2 Chọn một frame còn trống trên Score.
3 Kéo thành phần cast vào Stage để tạo ra các sprite.
Khi định vị sprite trên cửa sổ Stage, Director đặt mỗi sprite trên một kênh riêng
biệt. Hãy đặt các sprite trên các kênh liên tiếp.
4 Chọn tất cả các sprite cần thiết trong chuỗi hình ảnh.
5 Vào Modify > Space to Time.
Hộp thoại Space to Time xuất hiện. Đặt số frame giữa các thành phần cast tuỳ
ý.
Sử dụng film loop
Một film loop là một dãy hoạt hình mà ta có thể dùng nh là một thành phần cast
đơn.Ví dụ, để tạo một hoạt hình diễn tả cảnh một con chim đang bay, ta có thể
tạo ra một film loop gồm ảnh các thành phần cast các cảnh chim vỗ cánh.Thay
15
vì dùng kỹ thuật frame-by-frame, ta tạo một sprite chỉ chứa film loop và cho chạy
qua bao nhiêu khung hình tuỳ ý.
Có thể dùng film loop để làm gọn dữ liệu trên Score. Film loop đặc biệt hữu ích
khi cần làm giảm số kênh sprite. Có thể kết hợp vài kênh trên Score thành một
film loop và đặt trên một kênh. Có thể đặt các thuộc tính cho film loop.
Các bớc để tạo một film loop:
1 Trên Score, chọn các sprite bạn muốn chuyển thành film loop.
Sử dụng bao nhiêu sprite tuỳ thích kể cả kênh âm thanh.
2 Vào Insert > Film Loop.
Một hộp thoại xuất hiện.
3 Đặt tên cho film loop mới tạo ra.
Tạo hoạt hình dùng lệnh Lingo

Lingo có thể tạo hoạt hình bất kể những đặc tính đợc đặt trên Score. Điều này
cho phép bạn tạo ra hay sửa đổi một hoạt hình dựa trên tình trạng của phim.
Muốn di chuyển một sprite trên cửa sổ Stage, bạn có thể dùng các lệnh Lingo
điều khiển vị trí của sprite đó. Để tạo hoạt hình bằng cách thay đổi thành phần
cast của sprite, có thể dùng lệnh chuyển thuộc tính của sprite.
16
Chơng 2: Lingo script trong Director
Muốn xây dựng các ứng dụng có tính tơng tác với ngời dùng, Director cung cấp
một ngôn ngữ tiện lợi để viết lệnh điều khiển phim khi xảy ra một điều kiện hay
một sự kiện nào đó, đó là ngôn ngữ Lingo Script
Lingo tạo ra các tính năng mà nếu chỉ dùng các công cụ kéo-thả trong Director
thì không thể thực hiện đợc. Ví dụ, Lingo có thể chơi một âm thanh sau khi một
phần dữ liệu âm thanh đợc tải về từ mạng. Ngôn ngữ này có một điểm mạnh là
nó dễ học, cú pháp gần với ngôn ngữ tự nhiên. Đối với ngôn ngữ này, việc quan
trọng nhất là ta cần hiểu cách thức nó tơng tác với các thành phần cast và
Score, vị trí đặt đoạn mã để thu đợc kết quả mong muốn.
I. Sơ qua về Lingo
Các thuật ngữ
Cũng nh các ngôn ngữ lập trình khác, Lingo sử dụng các thuật ngữ và các cú
pháp đặc trng mà ngời lập trình cần phải nắm đợc. Các thuật ngữ của Lingo có
thể tóm tắt nh sau:
Tham số (Argument) là tên tợng trng dùng thế chỗ cho các giá trị thực sự sẽ đợc
truyền cho hàm khi hàm đợc gọi.
Lệnh (Command) là một chỉ thị yêu cầu Director thực hiện một thao tác gì đó. Ví
dụ nh chuyển đầu đọc tới một khung hình khác.
Hằng (Constant) là các yếu tố không thay đổi. Ví dụ ta có các hằng TAB,
EMPTY, và RETURN.
Sự kiện (Event) là các hành động xảy ra khi phim đang chạy. Ví dụ, phim kết
thúc, bắt đầu một sprite, đầu đọc đi vào một khung hình, ngời dùng gõ phím, đều
là những sự kiện.

Biểu thức (Expression) là bất cứ phần nào của dòng lệnh mà tạo ra một giá trị.
Ví dụ, 2 + 2 là một biểu thức.
Hàm (Function) trả về một giá trị.
Hàm xử lý (Handler) là tập hợp các lệnh Lingo, chạy khi một sự kiện nào xác
định xảy ra. Ví dụ, các dòng lệnh sau chứa một hàm xử lý, hàm này đợc gọi khi
chuột đợc nhấn:
on mouseDown
beep
end
Từ khoá (Keyword) là các từ dành riêng có ý nghĩa đặc biệt.
Danh sách (List) là tập hợp các giá trị dùng để theo dõi và cập nhật dãy dữ liệu.
Thông báo (Message) là những lời gọi do Director gửi đến script khi một sự kiện
xác định xảy ra.
17
Toán tử (Operator) dùng để tính toán tạo ra giá trị mới từ một hay nhiều giá trị
cũ.
Thuộc tính (Propertie) là các tính chất để xác định một đối tợng.
Biến (Variable) là các thành phần dùng để lu trữ và cập nhật giá trị.
Các sự kiện, thông báo và hàm xử lý(handler)
Mọi điều trong Lingo xảy ra nh kết quả của một sự kiện. Một số sự kiện là hoạt
động của ngời dùng, mouseUp, keyUp; một số khác là của hệ thống, nh timeout.
Bảng dới đây liệt kê các sự kiện chuẩn mà Lingo có thể nhận biết.
Các sự kiện chuẩn của Lingo
Sự kiện Xảy ra khi
MouseUp
Nhả chuột
MouseDown
Nhấn chuột
MouseEnter
Con trỏ di chuyển đến một sprite

MouseLeave
Con trỏ di chuyển ra khỏi sprite
MouseWithin
Con trỏ nằm trong một sprite
CuePassed
Mỗi khi một điểm nhắc đợc truyền bởi
một âm thanh, video số QuickTime
hoặc Xtra mà hỗ trợ các điểm nhắc
BeginSprite
Đầu đọc nhập vào một sprite
EndSprite
Đầu đọc thoát khỏi một sprite
PrepareFrame
Trớc khi khung hiện tại đợc chiếu, các
khung đơn nhận message này.
RightMouseUp
Nhả nút chuột phải
RightMouseDown
Nhấn nút chuột phải
KeyUp
Nhả một phím
KeyDown
Nhấn một phím
StartMovie
Bắt đầu phim
StopMovie
Kết thúc một phim
Xảy ra khi thực hiện lệnh quit
Hay lệnh play movie, go movie
ActivateWindow

Ngời dùng kích vào một phim trong cửa
sổ mà hiện tại không đợc nổi (focus),
đa phim đó nổi lên
MoveWindow
Ngời dùng kéo một phim trong cửa sổ
18
ResizeWindow
định lại kích thớc một phim trong cửa
sổ
DeactivateWindow
Ngời dùng kích vào một phim trong cửa
sổ hiện tại, làm chìm ch ơng trình hiện
tại
CloseWindow
Đóng cửa sổ
Lệnh close window
EnterFrame
đầu đọc nhập vào một khung hình
ExitFrame
đầu đọc thoát khỏi một khung hình
Idle
Không xử lý sự kiện nào
TimeOut
Thuộc tính hệ thống timeLapsed
>=thuộc tính hệ thống timeoutLength
Khi Director nhận thấy một sự kiện đã xảy ra, nó sẽ một thông báo sự kiện
(event message), sau đó tìm trong các script trong phim xem có đoạn mã nào xử
lý sự kiện đó không ( tìm hàm handler). Thủ tục Lingo gồm một hoặc nhiều hàm
xử lý sự kiện.
Các lệnh Lingo dùng để chỉ cho Director biết những việc cần làm khi thìm thấy

một thông báo sự kiện. Ta có thể tạo các sự kiện và các hàm xử lý sự kiện của
riêng mình. Các hàm xử lý sự kiện của ngời dùng có dạng nh sau:
On handlerName
Lingo statements
End
Không giống nh các hàm xử lý sự kiện đợc định nghĩa trớc ( đợc dùng để trả lời
một sự kiện đã tìm thấy), các hàm xử lý sự kiện ngời dùng phải đợc gọi rõ ràng
trong thủ tục.
Các loại Lingo script
Director dùng bốn loại script: behavior script, movie script, script cha, và script
gắn với thành phần cast. Behavior script, movie scripts, và script cha tất cả đều
là những thành phần trong cửa sổ Cast.
Behavior là loại script đợc gán với sprite hay frame trong Score, đợc gọi là
sprite behavior hay frame behavior. Loại script này chứa các điều khiển xác định
xem nó xử lý một thông báo khi nào và ở đâu.
Tất cả các behavior đợc thêm vào cast xuất hiện trong menu Popup Behavior
Inspector. (các loại script không có ở đây).
Ta có thể gắn cùng một behavior vào nhiều vị trí trong Score. Khi soạn thảo một
behavior, nó ảnh hởng đến toàn bộ các vị trí đợc gán. Movie script đáp ứng các
sự kiện nh nhấn phím hay click chuột, và có thể kiểm soát các sự kiện khi phim
19
bắt đầu, kết thúc, hay tạm dừng. Các hàm xử lý trong một movie script có thể đ-
ợc gọi từ các script khác khi phim chạy.
Movie script có thể đợc dùng trong toàn bộ phim, bất kể là phim đang ở khung
hình nào, hay ngời dùng đang tơng tác với sprite nào. Movie script sẽ nhận tất
cả các thông báo mà cha đợc xử lý bởi behavior scipt, hay script của thành phần
cast. Movie script là nơi tốt nhất để đặt các hàm xử lý mặc định.
Script chas là script đặc biệt chứa các lệnh Lingo dùng để tạo các đối tợng
con(child object). Ta có thể dùng script cha để sinh ra các đối tợng script hoạt
động độc lập với nhau. Script cha đợc dùng để lập trình theo phong cách hớng

đối tợng (object-oriented).
Script của thành phần cast đợc gắn trực tiếp với một thành phần cast, không
phụ thuộc vào Score.
Không giống với behavior, movie script, và script cha, script của thành phần
trong cast không xuất hiện trong cửa sổ Cast.
Các hàm xử lý sự kiện của hệ thống (system handler)
Ngoài các loại script trên, còn có các hàm xử lý của hệ thống. Chúng khác các
loại script còn lại các đặc điểm sau:
Các hàm xử lý còn lại không nhận các thông báo trừ khi các thông báo
truyền qua tất cả các mức phân cấp cao hơn. Còn các hàm xử lý sự kiện
hệ thống sẽ nhận các thông báo trớc tất cả các hàm xử lý khác.
Các hàm xử lý sự kiện khác giữ lại mọi sự kiện mà chúng nhận đợc,
không truyền tiếp đi. Còn các hàm xử lý hệ thống thực hiện thông báo
nhận đợc , sau đó tiếp tục gửi nó đến các mức phân cấp khác.
Sau đây là một vài hàm xử lý hệ thống:
MouseUpScript
MouseDownScript
KeyupScript
KeyDownScript
TimeOutScript
Ta có thể đặt lại một hàm xử lý hệ thống từ bất kỳ một script nào bằng cú pháp
sau:
Set the eventScript to code lines
Ví dụ:
the keyDownScript = "if the key = RETURN then go to the
frame + 1"
Hay đặt đến một hàm của ngời dùng
Set the mouseScript to userhandler
Có thể vô hiệu hoá hàm xử lý hệ thống bằng câu lệnh
20

Set the eventScript to EMPTY
Các hàm xử lý sự kiện hệ thống có lợi khi ta cần xử lý sự kiện chung. Nếu không
ta phải viết lệnh để xử lý các sự kiện ở tất cả các script khác.
Thứ tự phân cấp các thông báo
Director truyền các thông báo đến các script khác nhau theo môt trật tự xác
định. Các thông báo đợc truyền theo thứ tự sau:
Các hàm xử lý sự kiện của hệ thống ( system handlers)
Các hàm xử lý sự kiện của sprite ( sprite handlers)
Các hàm xử lý sự kiện của thành phần cast (cast members scripts)
Các hàm xử lý sự kiện của khung hình (frame handlers)
Các hàm xử lý sự kiện của phim (Movie handlers)
Muốn Director truyền thông báo đến hàm xử lý cần thiết, ta phải đặt nó trong loại
script có thể nhận đợc thông báo đó. Sau đây là bảng gồm các loại thông báo và
các script có thể nhận đợc các thông báo đó:
Kiểu script Các thông báo nhận đợc
Sprite script
MouseEnter
MouseLeave
MouseWithin
MouseUp
MouseDown
RightMouseUp
RightMouseDown
KeyUp
KeyDown
BeginSprite
EndSprite
PrepareFrame
Cast member s script
MouseEnter

MouseLeave
MouseWithin
MouseUp
MouseDown
RightMouseUp
RightMouseDown
21
KeyUp
KeyDown
Frame script
EnterFrame
ExitFrame
MouseUp
MouseDown
RightMouseUp
RightMouseDown
KeyUp
KeyDown
TimeOut
Movie script
EnterFrame
ExitFrame
MouseUp
MouseDown
RightMouseUp
RightMouseDown
KeyUp
KeyDown
Idle
StartMovie

StopMovie
ActivateWindow
MoveWindow
ResizeWindow
DeactivateWindow
CloseWindow
TimeOut
TruyÒn c¸c th«ng b¸o sù kiÖn
22
Thông thờng các điều khiển thông báo sprite, cast, frame nhận đợc thông báo
và nó không tiếp tục truyền thông báo đến các mức tiếp theo nữa. Nhng đôi khi
ta muốn các script tiếp theo cũng nhận đợc thông báo, muốn thế ta dùng lệnh
pass. Khi ta thêm lệnh pass vào trong một hàm xử lý sự kiện, thì sau khi sau khi
thực hiện các hành động cần thiết, nó sẽ truyền thông báo sự kiện tới các đối t-
ợng khác trong mức khác.
Các hàm xử lý hệ thống luôn truyền đi các thông báo mà nó nhận đợc. Nếu ta
dùng lệnh stopEvent trong hàm xử lý hệ thống, nó sẽ không truyền đi nữa. Ngoài
ra ta cũng có thể tự sinh ra một thông báo và truyền nó đi. Ví du ta thêm dòng
lệnh MouseDown(script button)
Nếu button là tên của một sprite hay cast member script của một nút trên stage,
nút sẽ hoạt động nh thể là ngờidùng vừa nhấn chuột.
II. Các kiểu biến trong Director
Director dùng các biến để lu trữ và cập nhật các giá trị của dữ liệu. Một biến có
thể thay đổi giá trị của nó khi chạy phim. Bằng cách thay đổi giá trị của một biến
khi phim đang chạy ta có thể lu trữ những giá trị cần quan tâm ví dụ nh cất một
đờng dẫn URL, theo dõi số lần một ngời tham gia vào một phiên chat, hay kiểm
tra xem một hoạt động mạng đã kết thúc cha.
Các biến có thể là toàn cục hay biến cục bộ. Một biến toàn cục có thể tồn tại và
duy trì giá trị của nó khi nào mà phim còn chạy, trong khi đó một biến cục bộ chỉ
tồn tại trong một hàm xử lý hay.

Biến cục bộ
Một biến cục bộ chỉ tồn tại trong hãm xử lý có chứa nó đang chạy. Các biến cục
bộ đợc dùng cho các biến tạm thời trong một hàm xử lý. Điều này giúp tránh việc
vô ý thay đổi giá trị trong hàm xử lý khác có biến cục bộ cùng tên.
Ta khai báo một biến cục bộ trong một hàm bằng lệnh put hoặc lệnh set:
Set [variable]=[value]
hay
Put [value] into [variable]
Biến toàn cục
Các biến toàn cục có thể đợc chia sẻ giữa các hàm xử lý và các phim. Một biến
toàn cục tồn tại và duy trì giá trị của nó khi phim chạy hay đến khi bạn dùng lệnh
clearGlobasl để xoá.
Nếu một hàm xử lý khai báo một biến là toàn cục thì có thể dùng giá trị hiện tại
của biến đó. Nếu hàm này thay đổi giá trị của biến thì giá trị mới sẽ có tác dụng
đối với các hàm còn lại có sử dụng nó. Khai báo biến toàn cục nh sau:
Global gbvarName
Ta có thể khai báo biến toàn cục bên trong hay bên ngoài một hàm. Khi khai
báo biến toàn cục, ta không phải khởi tạo cho nó, Director sẽ gán cho nó một
giá trị là <void>.
23
Bởi vì ta muốn dùng biến cục bộ trong suốt một bộ phim, tốt nhất là nên khai
báo chúng trong hàm xử lý prepareMovie , đảm bảo rằng chúng sẽ tồn tại ngay
khi phim bắt đầu.
Các dòng lệnh sau đây khai báo biến toàn cục gName và gán nó giá trị là Mary:
global gName
gName = "Mary"
Nếu một biến toàn cục đợc khai báo bên trong một hàm xử lý và ta muốn sử
dụng nó ở một hàm khác, ta phải khai báo lại biến toàn cục đó, nếu không
Director sẽ xem nó là một biến cục bộ trùng tên với biến toàn cục. Còn nếu biến
toàn cục đợc khai báo ở trong một MovieScript, bên ngoài tất cả các hàm, thì

các hàm không phải khai báo lại biến toàn cục.
Kiểu danh sách
Danh sách là một kiểu dữ liệu giúp ta dễ dàng theo dõi và cập nhật một dãy dữ
liệu. Ví dụ, nếu muốn lu trữ nhiều tên hay số trong một dự án Director, ta có thể
lu trong một danh sách. Toán tử ([ ]) dùng để biểu diễn một danh sách.
Có hai loại danh sách trong Lingo: danh sách tuyến tính và danh sách thuộc
tính.
Trong một danh sách tuyến tính, mỗi một thành phần là một giá trị đơn. Ví dụ,
danh sách dới đây là một tập đơn giản các số:
[100, 150, 300, 350]
Trong một danh sách thuộc tính, mỗi một thành phần chứa hai giá trị cách nhau
bởi một dấu : . Một thành phần là tên thuộc tính, luôn luôn có dấu thăng (#) đi
trớc; thành phần kia là giá trị gắn với thuộc tính đó. Ví dụ, những lệnh sau đây sẽ
đặt biến myList thành một danh sách thuộc tính chứa các giá trị của các thuộc
tính là #speed, #direction,và #weight. Đây có thể là tính chất của một thiên thể.
myList = [#speed: 155, #direction: 237, #weight: 8746]
Các thuộc tính có thể xuất hiện nhiều lần trong một danh sách.
Cả hai loại danh sách có thể là danh sách rông, không chứa giá trị nào cả. Một
danh sách tuyến tính chứa hai dấu móc vuông ([ ]). Một danh sách thuộc tính
rỗng chứa hai dấu móc vuông và một dấu hai chấm ở giữa ([:]).
Thao tác trên danh sách:
L u trữ và truy nhập danh sách
Danh sách tuyến tính (linear list)
Để đặt một giá trị vào một danh sách tuyến tính:
Dùng toán tử = . (Có thể dùng lệnh setAt nh trong các phiên bản Director trớc)
Ví dụ, dòng lệnh workerList[2] = "Tiffany" đặt giá trị phần tử thứ hai của danh
sách là Tiffany.
Để truy nhập một giá trị trong một danh sách tuyến tính:
24
Dùng biến danh sách và chỉ số trỏ vào phần tử trong danh sách. (Còn có thể

dùng lệnh getAt hay getaProp)
Ví dụ, trong một danh sách tuyến tính tên là workerList, ta đặt các giá trị:
set workerList = ["Bruno ", "Heather ", "Carlos "],
thì biểu thức workerList[2] sẽ lấy giá trị của phần tử thứ hai trong workerList, giá
trị là Heather.
Danh sách thuộc tính (property list)
Đối với danh sách thuộc tính thì có hai kiểu cú pháp có thể dùng để thao tác.
Kiểu thứ nhất là dùng dấu [] và tên của thuộc tính. Kiểu thứ hai là dùng dấu
chấm (.). Giả sử ta có một danh sách
list foodList = [#breakfast:"Waffles", #lunch:"Tofu Burger", #dinner:"Hungarian
Goulash"]
Có thể dùng một vài lệnh nh dới đây để thao tác
foodList[#Bruno] = "sushi" (vào thuộc tính Bruno có giá trị sushi)
hay
foodList.Bruno = "sushi"
Kiểm tra các đặc điểm của một danh sách:
Ta có thể xác định các đặc điểm của một danh sách và số phần tử của nó bằng
cách sử dụng các lệnh sau:
Đếm số phần tử dùng hàm count().
Xác định kiểu của danh sách, dùng hàm ilk().
Lấy giá trị lớn nhất hay nhỏ nhất, dùng hàm max() hay min()
Xác định vị trí của một thuộc tính dùng các hàm findPos, findPosNear, or
getOne.
Copy các danh sách
Gán một danh sách vào một biến và sau đó lại gán biến đó cho một biến khác
không tạo ra một bản copy riêng biệt và khác với danh sách ban đầu. Hai biến
đó thực chất chỉ trỏ vào cùng một danh sách mà thôi.
Để tạo ra một bản copy đúng nghĩa, độc lập với danh sách gốc, ta dùng hàm
duplicate().
Các dòng lệnh sau tạo ra một danh sách và sau đó lại tạo ra một bản copy của

nó:
oldList = ["a", "b", "c"]
newList = duplicate(oldList)
Sau đó thì nếu ta có thay đổi một trong newList hay oldList danh sách kia không
bị ảnh hởng.
Sắp xếp danh sách:
25

×