Tài liệu tham khảo kỹ thuật công nghệ, chuyên ngành tin học Tìm hiểu về Macromedia director 8
Trang 1Mụ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
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
Trang 2Cá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
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
Trang 4Phần I: Tìm hiểu về Macromedia Director 8
Chơng 1: Cơ bản về Director 8I.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
Trang 5hà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,
Trang 6Để 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.
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
Playback head
Sprite trong
Trang 7Score 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.
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
Trang 8khung 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.
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.
Kênh tempoKênh paletteKênh transitionKênh âm thanhKênh behaviorKênh sprite
Trang 9Kê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.
Trang 10Việ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
Trang 11stage, 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.
Trang 12Kỹ 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
Trang 13Đờ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ế
Trang 143 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 đổi8 Chọn Edit > Exchange Cast Members.
Trang 15Director 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
Trang 16vì 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
Trang 17Chơ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ề LingoCá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 mouseDownbeepend
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
Trang 18Toán tử (Operator) dùng để tính toán tạo ra giá trị mới từ một hay nhiều giá trị
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
MouseEnter Con trỏ di chuyển đến một spriteMouseLeave Con trỏ di chuyển ra khỏi spriteMouseWithin 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ắcBeginSprite Đầu đọc nhập vào một spriteEndSprite Đầ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.
RightMouseDown Nhấn nút chuột phải
MoveWindow Ngời dùng kéo một phim trong cửa sổ
Trang 19ResizeWindow đị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
Lệnh close window
EnterFrame đầu đọc nhập vào một khung hìnhExitFrame đầu đọc thoát khỏi một khung hình
TimeOut Thuộc tính hệ thống timeLapsed >=thuộc tính hệ thống timeoutLengthKhi 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 statementsEnd
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
Trang 20bắ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
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
Trang 21Set 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.
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 đó:
MouseLeaveMouseWithinMouseUpMouseDownRightMouseUpRightMouseDown
Trang 22TruyÒn c¸c th«ng b¸o sù kiÖn
Trang 23Thô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>.
Trang 24Bở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 gNamegName = "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:
Trang 25Dù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”)
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
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
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:
Trang 26Có thể sắp xếp một danh sách trong đó các phần tử đợc xếp theo trình tự abc , số đứng trớc xâu Xâu đợc xếp tuỳ vào ký tự đầu tiên, bất kể nó dài bao nhiêu Lingo sắp xếp một danh sách tuyến tính theo các giá trị trong đó, còn với danh
sách thuộc tính thì theo thuộc tính Dùng lệnh sort để sắp xếp.
Tạo mảng nhiều chiều
Mỗi phần tử của một danh sách lại chứa các danh sách con khác Theo kiểu này ta có thể tạo ra mảng nhiều chiều bằng danh sách.
Giả sử ta cần tạo một mảng hai chiều tên là twoDimensionList, mỗi phần tử của danh sách này lại là một danh sách Đoạn chơng trình sau sẽ tạo một mảng hai
chiều với giá trị các phần tử là #none.
Set twoDimensionList=[]Repeat with row=1 to 10
Set aRow=[]
Repeat with column=1 to 10SetAt (aRow,column,#none)End repeat
SetAt ( twoDimensionList, Row, aRow)End repeat
Kiểu số nguyên (integer)
Director xử lý số nguyên trong khoảng 2,147,483,648 đến +2,147,483,647 ( Ngoài khoảng này nên dùng số thập phân, hay còn gọi là dấu phẩy động).
Ta có thể chuyển đổi một số thập phân thành số nguyên nhờ hàm integer() Ví dụ, lệnh set theNumber = integer(3.9) làm tròn số thập phân 3.9 thành 4.
Trang 27Ví dụ, dòng lệnh
userLevel = #novice
chạy nhanh hơn dòng lệnh
userLevel = "novice"
Biểu tợng không thể chứa dấu cách hay dấu chấm
Chuyển một xâu thành biểu tợng ta dùng hàm symbol() Còn chuyển ngợc từ kiểu biểu tợng thành xâu ta lại dùng hàm string().
III Dùng các Xtras để mở rộng chức năng của Director
Xtras là những thành phần phần mềm mở rộng các chức năng của Director; một vài Xtras đợc cài đặt cùng với Director còn lại đợc các nhà sản xuất trung gian phát triển Xtras cung cấp các khả năng nh nối với Internet, thao tác trên file, thao tác với cơ sở dữ liệu v.v Dùng ngôn ngữ lập trình C ta có thể tạo ra đợc Xtras của riêng mình.
Các kiểu Xtras
Director hỗ trợ năm loại Xtras: cast member Xtras, importing Xtras, scripting Xtras, transition Xtras, và tool Xtras.
Cast member Xtras cung cấp kiểu thành phần cast mới dùng trong Director
Chúng điều khiển nhiều kiểu đối tợng đợc dùng nh là thành phần cast
Một vài thành phần cast đợc xây dựng ngay trong Director, nh là Shockwave Flash, Vector Shape, và Animated GIF, chúng là các Xtras Xtras cung cấp bởi các nhà trung gian bao gồm cơ sở dữ liệu, xử lý ảnh 3D, các kiểu đồ hoạ đặc biệt … Cast member Xtras có sẵn trong Director xuất hiện trong menu Insert > Media Element Một vài cast member Xtras không xuất hiện trong menu này
nhng có thể sử dụng chúng bằng lệnh Lingo.
Importing Xtras cung cấp mã lệnh cần thiết để nhập vào (import) các loại phơng
tiện (media) vào Director Khi trỏ một phim tới một file ngoài,Director dùng
importing Xtra để nhập file mỗi lúc phim chạy.
Scripting Xtras thêm các thành phần vào các Lingo script đã đợc viết trớc đó Ví
dụ, NetLingo Xtra cung cấp các thành phần đặc biệt để điều khiển các hàm
Lu trữ trong các file ngoài dùng FileIOXtra
Đối với các dữ liệu vừa và nhỏ, việc sử dụng các trờng trong phim Director để lu trữ là cách làm khá tối u Tuy nhiên, đối với các ứng dụng tơng đối lớn, mặc dù có thể cắt dữ liệu thành nhiều trờng nhng việc lu trữ một lợng lớn dữ liệu là một điều không thực tế Dữ liệu lu trữ trong các phim sẽ làm tăng kích thớc file phim
Trang 28và dung lợng bộ nhớ cần thiết khi nạp chơng trình Ngoài ra , việc lu trữ dữ liệu bên trong phim cũng làm cho chúg không thể truy nhập đợc từ bên ngoài Trong trờng hợp này, tốt nhất là ta nên lu trữ dữ liệu vào các file ngoài và khi cần ta có thể khôi phục một bản ghi dữ liệu từ file để xử lý.
Director cung cấp cho ta hai phơng tiện để đọc và ghi các file dạng text, đó là th viện FileIO Xobject và th viện FileIO Xtra.
FileIO Xtra nằm trong th mục Xtras Các fileIO Xtra làm việc khác với Xobject Xobject chỉ cho phép đọc hoặc ghi vào một file Để thêm vào một file, ta dùng
chế độ append Chế độ append sẽ đặt file đợc thêm vào cuối file đã mở Còn Xtra cung cấp đồng thời cả chế độ đọc và ghi Chế độ append bị bỏ đi Ta sẽ dùng phơng thức setPosition để ghi vào một vị trí xác định trong file Ta có thể
dùng getLength để chuyển đến cuối file hiện tại
Ta mở một file bằng cách tạo ra một thể hiện mới của FileIO Xtra bằng lệnh new
và gán nó cho một biến Ta có thể mở nhiều file Đoạn mã sau sẽ mở một file
đang tồn tạion readFile
filePath = the moviePath & "demoSaveFile" tạo ra một instance của fileIO Xtra
fileIOInstance = xtra("FileIO").new() error trap for missing file Xtra if not fileIOInstance.objectP then alert "File IO Xtra missing" exit
cho nội dung file vào field
member("file contents").text = fileText else
Nếu có lỗi
member("file contents").text = "Error: " & fileIOInstance.error(fileIOInstance.status())
Trang 29end if end
Chơng 3: Lập trình hớng đối tợng bằng Lingo
Director cho phép ta lập trình theo kiểu hớng đối tợng nh trong các ngôn ngữ
khác, tạo thuận lợi để phát triển một ứng dụng Ta có thể dùng script cha để tạo
các đối tợng script mà có thể hoạt động nh là các đối tợng độc lập
Lingo có thể tạo nhiều bản copy hay instance (thực thể) của một script cha Mỗi instance của một script cha đợc gọi là một đối tợng con (đối tợng con) Ta có thể
tạo các đối tợng con theo nhu cầu khi phim chạy Director không giới hạn số đối
tợng con có thể tạo ra từ cùng một script cha Ta có thể tạo nhiều đối tợng con
tuỳ theo dung lợng bộ nhớ
Chơng này trình bày cơ bản về cách viết script cha , tạo và sử dụng các đối tợng
con
I So sánh với các ngôn ngữ hớng đối tợng khác
Nếu đã quen với một ngôn ngữ lập trình hớng đối tợng khác nh là Java hay C++,
ta có thể dễ dàng hiểu đợc các khái niệm về script cha Những thuật ngữ mà Director dùng để mô tả script cha và đối tợng con tơng ứng các thuật ngữ trong
lập trình hớng đối tợng:
Script cha tơng ứng với class (lớp)
đối tợng con tơng ứng với instance (thực thể)
Property variable tơng ứng với instance variable hay member variable (biến
thành phần)
Handler tơng ứng với method (phơng thức)
Ancestor script tơng ứng với the Super class hay base class (lớp gốc)
II Cơ bản về Script cha và đối tợng con (child object)
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ố.
Trang 30Bở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 con và behavior 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 và
behavior là behavior đợ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 cha và ancestor 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,
Trang 31, 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
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 :
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") thenbeep
end if
Trang 32Ta 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."
end if
Trang 33Phầ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.
I Nguồn gốc ra đời của World Wide Web
World Wide Web ra đời từ một dự án nghiên cứu phát triển tại phòng thí nghiệm vật lý hạt nhân châu Âu vào năm 1989 Nhóm nghiên cứu do Tim Berners-Lee và Robert Calliau đứng đầu, đã phát triển và đa ra một giao thức truyền và nhận các tệp siêu văn bản (Hypertext) theo mô hình Client/Server, gọi tắt là HTTP (HyperText Transfer Protocol) để phục vụ cho việc trao đổi thông tin trên Internet Sau đó nhóm phát triển đã công bô rộng rãi th viện chơng trình nguồn của giao thức này cho các nhà phát triển và các tổ chức nghiên cứu Internet để họ phát triển các phần mềm Web Client nhằm hiểu đợc và hiển thị các tệp Hypertext Kể từ đó, thuật ngữ World Wide Web hay gọi gọn hơn là Web đã ra đời và đợc công nhận rộng rãi trên Internet nh là một từ chỉ tới một dịch vụ phát triển mạnh mẽ nhất và hấp dẫn nhất Các tổ chức và các công ty sử dụng Internet đã thành lập nên một uỷ ban (W3 Consortium) để đa các tiêu chuẩn cho World Wide Web và chuẩn hoá các cấp độ (Levels) cho ngôn ngữ HTML.
Nh vậy, World Wide Web đợc định nghĩa nh là một dịch vụ thông tin toàn cầu nhằm cung cấp các t liệu thông tin đa phơng tiện thông qua một giao thức mức cao đợc gọi là HTTP Các tài liệu trên World Wide Web đợc viết bởi ngôn ngữ HTML Sau khi các tài liệu đợc chuyển tới Client, các phần mềm Web Browser
Trang 34sẽ diễn dịch lại tài liệu này và trình bày các thông tin dới nhiều dạng khác nhau nh văn bản, hình ảnh, âm thanh, phim số hoá
II Kiến trúc của World Wide Web
World Wide Web đợc xây dựng theo mô hình Client/Server, tức là ngời ta sẽ thiết lập một máy phục vụ cho việc lu giữ các tài liệu Hypertext gọi là Web Server Phía ngời sử dụng, có một máy tính cùng với các phần mềm có khả năng hiểu đợc các tài liệu HTML và giao tiếp đợc với máy Server gọi là Web Client hoặc Web Bowser Khi ngời sử dụng yêu cầu một tài liệu nào đó, thì Web Server se phục vụ cho Web Bowser tài liệu đó và Web Bowser sẽ hiển thị nó lên màn hình với các khuôn dạng thích hợp.
Dới đây là mô hình Client/ Server của World Wide Web:
Web Server
Một Web Server là một phần mềm đợc sử dụng ở máy phục vụ, nó luôn "lắng nghe" những yêu cầu của ngời sử dụng từ một cổng truyền thông TCP/IP nào đó (ngầm định là cổng 80) Khi phía máy khách yêu cầu một trang Web, máy Server sẽ tìm trong tài nguyên của mình xem có đáp ứng đợc đòi hỏi đó không, nếu có thể nó sẽ gửi trả kết quả về phía Client, các kết quả trả về thờng là các trang HTML chứa văn bản thuần tuý hoặc là các dạng dữ liệu đa phơng tiện nh các tệp hình ảnh, âm thanh
Web Browser
Yêu cầu thông tin của Client được gửi lên Internet
Internet và WWW là một mạng máy tính để chuyển dữ liệu giữa các máy tính với nhau
Server HTTP nhận yêu cầu, xử lý nó và gửi kết quả về cho Client thông qua
Mô hình Client/Server của WWW
Trang 35Web Browser là một phần mềm đợc dùngở phía ngời sử dụng, nhiệm vụ của nó
là khởi tạo các con trỏ địa chỉ URL (sẽ đợc giải thích ở phần tiếp theo) để gửi tới
cho Wen Server Web Browser sẽ diễn dịch nội dung dới ngôn ngữ HTML và trình bày chúng cho ngời sử dụng dới nhiều hình thức phong phú Hiện nay, các Web Browser chủ yếu dùng giao diện đồ hoạ với ngời dùng để trình bày tài liệu một các hấp dẫn hơn.
Ngoài các chức năng nh trên, ta còn có thể thực hiện nhiều thao tác thông ờng khác nh là lu tệp tin lên đĩa; sử dụng E-mail; hoặc sử dụng để biên soạn một tài liệu HTML nguồn (Web Editor).
th-Khái niệm HTTP
Các Web Server và Web Browser giao tiếp với nhau thông qua một giao thức gọi là giao thức truyền siêu văn bản (HyperText Transfer Protocol), và gọi tắt là giao thức HTTP.
Khi Client gửi một yêu cầu về phía Web Server thì giữa Client và Server sẽ hình thành một đờng kết nối logic dựa trên giao thức HTTP Khi kết thúc quá
trình trao đổi giữa Web Server và Web Browser (khi Web Server đ phục vụãxong yêu cầu của Web Browser) thì sự kết nối này sẽ chấm dứt Nh vậy, mối liên
hệ giữa Client và Server chỉ đợc thiết lập và tồn tại trong quá trình trao đổi với nhau Điều này có một lợi điểm rất lớn là giảm đợc sự lu thông trên hệ thống mạng.
Khi dữ liệu đợc truyền từ Web Server về phía Client thì giao thức HTTP sẽ thêm vào phần đầu đề của khối dữ liệu một thông tin header tuân theo tiêu chuẩn MIME (Multipurpose Internet Mail Extension) để phục vụ cho việc trao đổi thông
Gopher Server
Web ServerGopher
Gateway Các Server khácWeb
Chức năng của Web Browser
Trang 36tin một cách đa dạng Những tài liệu HTML sẽ có phần đầu đề theo dạng "Text/Html", các dạng dữ liệu khác có phần đầu đề riêng của mình; ví dụ nh văn bản thuần tuý có phần đầu đề là "text/plain", tệp ảnh GIF sẽ có phần đầu đề là "Image/Gif" Khi Client gửi một yêu cầu tới Web Server, nó sẽ gửi theo một danh sách tất các các dạng MIME mà nó có thể hiểu đợc, dựa vào đó mà Web Server chỉ phục vụ những dữ liệu mà Client đó có khả năng hỗ trợ Khi nhận đợc tài liệu, trình Browser sẽ dựa vào mô tả MIME cuẩ tài liệu đó để có cách trình bày thích hợp.
Khái niệm HTML
HTML đợc viết tắt từ cụm từ HyperText Markup Language, tạm dịch là "ngôn ngữ đánh dấu siêu văn bản", dùng để xây dựng nên các trang Web Các tài liệu HTML cho phép ta mô tả về cấu trúc cũng nh định dạng của một tài liệu, tạo ra sự tích hợp giữa các dạng thông tin khác nhau nh hình ảnh; âm thanh, phim số hoá vào trong một tệp tin đơn giản Nó cho phép ta mô tả các URL để tạo ra liên kết tới các dịch vụ khác nhau trên Internet Đây là công cụ rất mạnh để xây dựng các ứng dụng và tích hợp thông tin trên mạng Internet
III Tích hợp các dịch vụ thông tin trong WWW
Một trong những mục đích thiết kế chính của World Wide Web (Web) là khả năng hỗ trợ đợc các giao thức hiện thời của các ứng dụng sẵn có trên Internet Chính vì vậy mà Web có thể hiểu đợc và hỗ trợ rất nhiều các dịch vụ sẵn có trên Internet nh FTP, Gopher, E-mail Điều này làm cho World Wide Web đợc chấp nhận và sử dụng rộng rãi.
World Wide Web và Gopher
Web có khả năng hỗ trợ mọi đặc điểm của Gopher, bao gồm khả năng hiển thị một menu Gopher, trình bày nội dung của Gopher Server Ngoài ra, Web còn có khả năng xử lý các yêu cầu của dịch vụ Gopher và hiển thị lên trên các Browser tơng tự nh các Gopher Client thông thờng khác Ngời dùng có thể chọn một đề mục trên menu, và Web Server sẽ hiển thị các thông tin tơng ứng cho đề mục ấy
Để truy nhập tới Gopher ta có thể tạo ra một URL với cú pháp nh sau:
Trang 37DÞch vừưÞa chìCỗng giao tiếpưởng dẫn
Tàn cũa dÞch vừ Gopher
ưÞa chì IP hoặc tàn cũa mÌy Server
Cỗng giao tiếp vợi Gopher, ngầm ẼÞnh lẾ cỗng 70
Chì Ẽến th mừc chựa thẬng tin cũa Gopher Server
World Wide Web vẾ FTP
Hầu hết cÌc Web Browser Ẽều tÝch hùp khả nẨng truyền tệp vẾo trong chÈng
trỨnh cũa mỨnh (cọ nghịa lẾ khẬng cần thàm chÈng trỨnh ngoẾi) Khi ngởi sữ dừng
truy nhập FTP ỡ trong Web thỨ Web Client sé hiển thÞ mờt cẪy th mừc tÈng tỳ nh tràn cÌc FTP Client thẬng thởng khÌc Ngởi sữ dừng cọ thể dỈo qua cÌc cẪy th mừc nẾy vẾ lấy cÌc tệp tử cẪy th mừc Ẽọ về mÌy cũa mỨnh.
Muộn truy nhập FTP tràn Web, ta cọ thể tỈo ra mờt URL nh sau:
DÞch vừ truyền tệp
Tàn ngởi sữ dừng, nếu khẬng chì ró tàn thỨ ngầm ẼÞnh lẾ FTP nặc danh
Mật khẩu cũa ngởi sữ dừng
ưÞa chì Internet, hoặc ẼÞa chì vủng cũa mÌy Server
Cỗng truyền thẬng ngầm ẼÞnh cũa Server FTP
ưởng dẫn Ẽến tẾi liệu cần tham chiếu chựa tràn Server
World Wide Web vẾ WAIS
Sữ dừng WAIS trong World Wide Web sé bỗ xung thàm khả nẨng truy tỨm cÈ sỡ dứ liệu mẾ Web cọ rất Ýt Muộn sữ dừng dÞch vừ WAIS trong Web, ta cọ thể dủng mờt trong cÌc phÈng phÌp sau:
Trang 38Truy nhập WAIS trực tiếp
Một số Web Browser cung cấp khả năng truy nhập trực tiếp tới WAIS Server bằng các URL trỏ tới WAIS Server với cú pháp nh sau:
Dịch vụ tìm kiếm thông tin WAIS
Địa chỉ của WAIS
Cổng của WAIS Server, ngầm định là 210
Tên của cơ sở dữ liệu WAIS
Chuỗi cần tra cứu
Truy nhập bằng phơng pháp này có lợi điểm là ngời sử dụng có thể dùng tiện ích WAIS một cách dễ dàng, và không cần phải tiến hành các cấu hình phức tạp Tuy nhiên, cách truy nhập này chỉ có ở một vài chơng trình Browser cùng với khả năng tìm kiếm đơn giản.
Truy nhập WAIS bằng cách xây dựng gateway
Chúng ta cso thể sử dụng một giao tiếp giữa các Web Server và gateway gọi là
chuẩn CGI (sẽ đợc đề cập trong phần sau) Đây là một giao thức chuẩn để các chơng trình bên ngoài (gọi là gateway) trao đổi thông tin với Web Server Khi ng-
ời sử dụng có yêu cầu tìm kiếm một tài liệu nào đó, thì Web Server sẽ chuyển yêu cầu tới gateway này; đến lợt mình, các chơng trình này sẽ truy cập vào các cơ sở dữ liệu của WAIS Server, tìm kiếm dữ liệu và trả kết quả lại cho Web Server dới dạng các trang HTML Sử dụng phơng pháp này hơi phức tạp nhng nó đem lại một sự mềm dẻo và luôn đáp ứng đợc mọi đòi hỏi của ngời dùng.
Tích hợp các dịch vụ khác trong World Wide Web
Ngoài các dịch vụ thông tin trên, World Wide Web còn hỗ trợ các dịch vụ khác nh Telnet; E-mail; Newsgroup Các chơng trình này thờng đợc thực hiện nhờ sự trợ giúp của các phần mềm bên ngoài.