GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 Chọn Send Using Post đưa các biến số tách biệt từ URL như các chuỗi dài trong một tiêu đề độc lập. Điều này cho phép bạn đưa vào nhiều biến số và gởi thông tin nhận được từ một dạng Form đến một mã script CGI trong Server. Chọn mục Don't Send không đưa vào bất kỳ biến số nào. Bạn có thể xem mã ActionScript tương tự như sau : getUrl ("page2.html", "blank"); Action Get URL nạp về tài liệu HTML "page2" vào trong một cửa sổ trình duyệt mới. ĐIỀU KHIỂN FLASH PLAYER Bạn sử dụng action FSCommand để điều khiển Flash trong chế độ Stand-alone player. Ngoài ra bạn có thể dùng action này để gởi các thông điệp đến các trình ứng dụng trên máy chủ Flash Player — ví dụ như, JavaScript trong trình duyệt Web, Director, Visual Basic, Visual C++ và các chương trình khác có thể dẫn các điều khiển ActiveX. Để biết thêm thông tin về cách gởi các thông điệp đến các chương trình ứng dụng khác bằng cách sử dụng FSCommand, bạn hãy xem mục ActionScript Help. Để điều khiển phim trình chiếu như là một projector: 1. Chọn frame có Instance là Button hoặc Movie Clip mà bạn sẽ gán action. 2. Chọn trên trình đơn Window > Actions để hiển thò bảng Actions. 3. Trong danh sách Toolbox, bạn hãy nhấp chuột vào mục Basic Actions để hiển thò các action cơ bản và chọn action FSCommand. TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 263 . GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 4. Trong mục Parameters, chọn một tùy chọn để điều khiển chế độ diễn hoạt độc lập từ trình đơn xổ xuống Commands for Standalone Player: Chọn Quit để đóng đoạn phim Projector. Chọn Exec bắt đầu chạy trình ứng dụng bên trong projector. Trong hộp ký tự Arguments, nhập đường dẫn cho chương trình ứng dụng cần đưa vào. Chọn Fullscreen [True/False] để điều khiển vùng xem. Trong hộp ký tự Arguments, nhập vào lệnh True để chọn vùng xem đầy màn hình hay chọn False chọn chế độ xem bình thường. Chọn Allowscale [True/False] để điều khiển thay đổi đoạn phim. Trong hộp ký tự Arguments, nhập vào True để thay đổi chuyển động hoặc nhập vào False để hiển thò chuyển động mà không cần thay đổi kích thước. TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 264 . GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 Chọn Showmenu [True/False] để điều khiển các mục Item trong trình đơn xổ xuống. Trong hộp ký tự Arguments, nhập vào True để hiển thò đầy đủ các mục trong trình đơn khi nhấp phải chuột hoặc chọn False để dấu thanh trình đơn. Ngoài ra bạn có thể nhập vào các tùy chọn trong hộp ký tự Commands hoặc Arguments hoặc nhập vào các hộp này những biểu thức. Bạn có thể xem mục ActionScript Help để biết thêm chi tiết. LOAD VÀ UNLOAD CÁC ĐOẠN PHIM BỔ SUNG Để diễn hoạt các đoạn phim mà không cần phải đóng Flash Player lại hoặc chuyển sang các đoạn phim khác mà không cần nạp về (Load) tài liệu HTML khác, bạn hãy sử dụng action Load Movie. Action Unload Movie sẽ loại bỏ một đoạn phim trước đó được nạp về bằng action Load Movie. Dưới đây là một vài mẫu dùng action Load Movie: TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 265 ♦ ♦ ♦ Xem một chuỗi các bảng quảng cáo là file SWF bằng cách đặt action Load Movie tại cuối mỗi file SWF để nạp về đoạn phim tiếp theo. Phát triển các giao diện phụ cho phép người dùng chọn trong số nhiều file SWF khác nhau. Xây dựng một giao diện đònh hướng với các điều khiển Navigation trong Level 0 nạp về các Level khác. Việc nạp về các Level tạo ra các vùng chuyển cảnh (Transition) nhẵn hơn trong việc nạp về các trang HTML mới trong trình duyệt Browser. Nạp về một đoạn phim: 1. Chọn frame, Instance nút hoặc đoạn Instance Movie Clip mà bạn sẽ gán action vào. 2. Chọn trên trình đơn Window > Actions để hiển thò bảng Actions. 3. Trong danh sách Toolbox, nhấp chuột vào mục Basic Actions để hiển thò các action cơ bản và chọn action LoadMovie. 4. Trong bảng Parameters, đối với mục URL xác đònh một đường dẫn đòa chỉ tuyệt đối hoặc tương đối cho file SWF cần nạp về. Để dùng được các file này trong chế độ Flash Player hoặc Test trong Flash, tất cả các file SWF phải được lưu trong cùng một thư mục và tên file không cần xác đònh đường dẫn hay ổ đóa. . GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 5. Trong mục Location, chọn Level hoặc Target có trong trình đơn xổ xuống. 6. Nếu bạn chọn trong mục Location là Level, bạn phải nhập vào một con số chỉ cấp độ như sau : Nạp về đoạn phim mới ngoài các đoạn phim đang tồn tại ra, bạn có thể nhập vào một con số chỉ cấp độ mà đoạn phim khác không sử dụng. (Giữ đoạn phim và luôn cập nhật các giá trò mới cho các biến, bạn nên sử dụng Action Load Variables. Để biết thêm thông tin chi tiết, bạn có thể xem mục ActionScript Help.) Thay thế một đoạn phim đang tồn tại với đoạn phim được nạp, bạn có thể nhập vào một con số chỉ cấp độ mà hiện đang được đoạn phim khác sử dụng. Thay thế đoạn phim gốc và không nạp về từng chỉ số cấp độ, chọn Level 0 để nạp về một đoạn phim mới. Trước hết đoạn phim nạp vào được đưa vào cấp độ dưới cùng. Đoạn phim ở Level 0 thiết lập tỉ lệ frame, màu Background và kích thước frame của tất cả các đoạn phim được nhập vào khác. Sau đó các đoạn phim có thể được chồng lên các cấp độ bên trên đoạn phim trong Level 0. 7. Nếu bạn chọn mục Location là Target, bạn phải xác đònh một đoạn Movie Clip sẽ được đoạn phim nạp về thay thế. Đoạn phim nạp vào thừa hưởng các thuộc tính như vò trí, hướng xoay và thay đổi tỉ lệ của đoạn Movie Clip được nhắm đến (đích). Điểm khai báo (Registration Point) của đoạn phim nạp vào xuất hiện tại góc trái trên của đoạn phim Movie Clip đích. 8. Mục Variable, chọn một Method để gởi các biến cho đoạn phim được nạp vào vò trí được liệt kê trong hộp ký tự URL: Chọn mục Send Using Get gắn thêm vào một số biến nhỏ cho đến kết thúc URL. Ví dụ, bạn dùng tùy chọn này để gởi các biến giá trò trong một đoạn Flash Movie đến một server-side script Chọn Send Using Post đưa các biến số tách biệt từ URL như các chuỗi dài trong một tiêu đề độc lập. Điều này cho phép bạn đưa vào nhiều biến số và gởi thông tin nhận được từ một dạng Form đến một mã script CGI trong Server. Ví dụ, bạn có thể gởi các biến đến một CGI script tạo ra một file SWF khi xuất ra là CGI. Chọn mục Don't Send không đưa vào bất kỳ biến số nào. TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 266 . GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 Trong ví dụ sau đây, nhấp chuột vào nút nạp đoạn phim vào trong thư mục gốc tại cấp độ Level 0, thay thế đoạn phim đang tồn tại và gởi các biến đến đoạn phim được nạp vào sử dụng Method (phương thức ) Get: loadMovie ("someFile.cgi", 0, "GET"); Lệnh "someFile.cgi" xuất ra đoạn phim Flash với đònh dạng file SWF. Bỏ nạp (Unload) một đoạn phim trong cửa sổ Flash movie: 1. Chọn frame, Instance nút hoặc đoạn Instance Movie Clip mà bạn sẽ gán action vào. 2. Chọn trên trình đơn Window > Actions để hiển thò bảng Actions. 3. Trong danh sách Toolbox, nhấp chuột vào mục Basic Actions để hiển thò các action cơ bản và chọn action Unload Movie. 4. Mục Location, chọn một trong những tùy chọn sau có trong trình đơn xổ xuống: Đối với đoạn phim được nạp vào, chọn mục Level và nhập vào cấp độ của đoạn phim mà bạn muốn bỏ nạp vào. Nhắm đến việc bỏ chọn đoạn phim, chọn mục Target và nhập vào đường dẫn của đoạn phim bạn sẽ bỏ nạp. Chọn mục Expression để nhập vào biểu thức bỏ nạp đoạn phim vào. Ví dụ: unloadMovie (3); Đích đến đoạn phim trong Level 3 và bỏ nạp nó. TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 267 . GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 268 Để kiểm tra Load Movie hay Unload Movie action: 1. Nếu bạn đang kiểm tra một action Load Movie, bạn phải bảo đảm rằng đường dẫn và thư mục của đoạn phim nhập vào được xác đònh. Nếu đường dẫn mang đòa chỉ URL tuyệt đối, việc kích hoạt vùng kết nối mạng sẽ được thực hiện. 2. Chọn trình đơn Control > Test Movie . Chú ý : Action Load Movie và Unload Movie không hoạt động trong chế độ hiệu chỉnh Editing Mode. ĐIỀU KHIỂN CÁC ĐOẠN MOVIE CLIP VÀ CÁC ĐOẠN PHIM KHÁC Bạn có thể điều khiển một đoạn Movie Clip hoặc đoạn phim được nạp với action Load Movie bằng targeting Movie Clip. Bạn có thể gán các action cho frame, Button hoặc đoạn Movie Clip sẽ điều khiển đoạn phim Movie Clip (gọi là bộ điều khiển Controller) và sau đó áp đặt đoạn phim hay đoạn Movie Clip nhận action gọi là Target Movie Clip (đoạn Movie Clip đích). Để điều khiển một đoạn Movie Clip hoặc đoạn phim, bạn có thể dùng các action cơ bản là Tell Target. Lần lượt bạn có thể dùng Action With để thực hiện nhiều Action cùng một mục tiêu (Target) mà không phải có đòa chỉ của Targeted Movie Clip trong mỗi Action. Điều khiển một đoạn Movie Clip hoặc đoạn phim, bộ điều khiển Controller đòi hỏi các bước sau: • Một Target (trong thanh thước Timeline) mà trong đó Action sẽ xảy ra phải được xác đònh trước đó. Bạn có thể dùng hộp thoại Insert Target Path để nhắm vào một đoạn Movie Clip. • Đoạn Movie Clip được nhắm đến phải có một tên Instance—một tên duy nhất đưa vào một Instance là Movie Clip mà cho phép bạn nhắm vào nó trong mã script. Để đặt tên cho một Instance là Movie Clip, dùng bảng Instance (trên trình đơn Window > Panels > Instance ). • Một Timeline của Movie Clip phải ở trong vùng Stage. Ví dụ như nếu đoạn MovieClip A tại frame 5 muốn bảo MovieClip B làm gì thì đoạn MovieClip B phải ở trên thanh thước Timeline tại frame 5. Để biết thêm thông tin về Action With và điều khiển nhiều Timeline hoặc điều khiển các đoạn Movie Clip trong nhiều cách khác nhau, bạn có thể xem trong chương Movie Clip của ActionScript Help. Điều khiển một đoạn Movie Clip: 1. Chọn frame, Instance nút hoặc đoạn Instance Movie Clip mà bạn sẽ gán action vào. 2. Chọn trên trình đơn Window > Actions để hiển thò bảng Actions. 3. Trong danh sách Toolbox, bạn nhấp chuột vào trong mục Basic Actions để hiển thò các action cơ bản và chọn action Tell Target. 4. Xác đònh đoạn Movie Clip đích để được điều khiển, nhấp chuột vào nút Insert Target Path tại góc phải dưới của bảng Actions. . GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 Sau đó hộp thoại Insert Target Path xuất hiện hiển thò đoạn Movie Clip của Clip hiện hành. Bạn dùng hộp thoại này để chọn một đường đích cho hộp ký tự Target trong bảng Parameters. 5. Mục kiểm chọn Dots trong mục Notation được sử dụng mặc đònh (tương tự như ngôn ngữ lập trình JavaScript). Notation chọn là Slash , có tác dụng tương tự như mục Notation trong Flash 4, người dùng các dấu vạch xiên đònh giới đường dẫn đích của đoạn Movie Clip. 6. Trong mục Mode, chọn chế độ hiển thò phân cấp của các Instance trong đoạn Movie Clip: • Chế độ Relative (mặc đònh) chỉ hiển thò các Instance của đoạn Movie Clip tồn tại trong frame hiện hành của Timeline hiện hành và các Instance con của nó. Tiền tố this đề cập đến Timeline hiện hành. • Mỗi frame của từng Scene. Chế độ này luôn bắt đầu bằng dấu vạch xiên hay tiền tố _root (hoặc _level cho biết cấp độ đoạn phim được nạp) đến đường dẫn đích chèn vào. TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 269 . GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 Chú ý : Chế độ Absolute hiển thò mỗi Instance trong từng frame nhưng vì độ phức tạp của các đoạn phim tương tác, một số Instance không thể có sẳn khi Action Tell Target thực hiện. Bạn có thể chuyển đổi một cách tự do giữa các Notation (ký hiệu). Tuy nhiên, khi bạn thay đổi giữa chế độ Relative và Absolute có thể bạn phải chọn lại đoạn Movie Clip. 7. Chọn một đoạn Movie Clip cây thư mục xem trước. Hộp ký tự Target hiển thò đường dẫn đến Clip đó. Sau đó nhấp chuột vào nút OK. 8. Trong danh sách Toolbox của bảng Actions, chọn bất kỳ Action bổ sung sẽ chỉ dẫn đoạn Movie Clip đích, thực hiện cụ thể công việc gì. Các Action xếp lồng nào trong khối Tell Target áp dụng thanh thước Timeline. Ví dụ: tellTarget (_root.plane) { stop(); } KIỂM TRA KHI NÀO MỘT FRAME ĐƯC NẠP VÀO Tạo một bộ nạp để ngăn chặn một vài action nào đó khỏi bò kích hoạt trước khi nội dung cần tải được người xem nạp về, bạn hãy sử dụng action If Frame Is Loaded. Một bộ nạp lại này là một vùng chuyển động diễn hoạt đơn giản khi vùng còn lại của đoạn phim được nạp về. Action If Frame Is Loaded rất có ích cho việc kiểm tra lại khi tải về các file lớn như file ảnh Bitmap hoặc file âm thanh. Ngoài ra bạn cũng có thể sử dụng thuộc tính (property) _framesloaded (bên trong một action If ) để kiểm tra xem liệu có nội dung của một frame đặc biệt có sẵn hay không. Dùng action hoặc property, bạn có thể bắt đầu diễn hoạt một chuyển động đơn giản trong khi phần còn lại của đoạn phim được tải xuống một máy tính cục bộ. Cả hai chế độ action và property đều kiểm tra nội dung của frame đặc biệt. TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 270 . GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 Điển hình như action If Frame Is Loaded được dùng như action frame nhưng nó có thể được sử dụng như action Button. Để kiểm tra một điều kiện If Frame Is Loaded, bạn sử dụng tùy chọn Streaming với lệnh Test Movie. Các frame nạp về như thể chuyển động liên tục từ trang Web. Kiểm tra khi nào một frame được nạp vào: 1. Chọn frame, Instance nút hoặc đoạn Instance Movie Clip mà bạn sẽ gán action vào. 2. Chọn trên trình đơn Window > Actions để hiển thò bảng Actions. 3. Trong danh sách Toolbox, bạn nhấp chuột vào trong mục Basic Actions để hiển thò các action cơ bản và chọn action If Frame Is Loaded. 4. Trong bảng Parameters, mục chọn Scene, chọn scene có chứa frame mong muốn: Current Scene hoặc tên của một scene. 5. Mục Type, chọn là Frame Number, Frame Label hay Expression. 6. Mục Frame, xác đònh frame được nạp về trước khi action được kích hoạt Frame Number, Frame Label hoặc Expression, dựa theo tùy chọn của bạn trong bước 5. 7. Chọn action xảy ra khi frame đặc biệt được nạp về. Flash nhập vào mã ActionScript tương tự như mã sau đây trong danh sách Actions: ifFrameLoaded (100) { gotoAndPlay (10); } TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 271 . GIÁO TRÌNH THIẾT KẾ WEB : PHẦN LÝ THUYẾT - TỰ HỌC MACROMEDIA FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 Sử dụng action If Frame Is Loaded để xem hoạt cảnh ngắn để làm một đoạn phim nạp vào: 1. Bạn hãy tạo ra một đoạn phim có vòng lặp chuyển động ngắn tại vò trí đầu tiên của đoạn phim. Ví dụ như bạn có thể tạo ra một vòng lặp hiển thò thông điệp "Movie loading " 2. Tạo một action frame với action If Frame Is Loaded nhảy ra khỏi vòng lập chuyển động khi tất cả các frame được tải về và tiếp tục diễn hoạt đoạn phim. Ví dụ, một đoạn phim có 30 frame có 2 frame vòng lập chuyển động, tại vò trí bắt đầu bạn hãy gắn action sau đây vào Frame 1: ifFrameLoaded (30) { gotoAndPlay (3); } Kết thúc ví dụ, gắn action sau đây vào Frame 2, sau đó khởi động lại đoạn phim tại Frame 1: gotoAndPlay (1); Khi frame xác đònh trong action If Frame Is Loaded nạp vào, đoạn phim sẽ bỏ qua frame thứ hai và tiếp tục phát đoạn phim từ frame thứ ba. Dùng thuộc tính _framesloaded trong một action để xem một vòng lập chuyển động ngắn để làm đoạn phim nạp vào: 1. Bạn hãy tạo ra đoạn phim có một vòng lập chuyển động ngắn tại vò trí đầu tiên của đoạn phim. Ví dụ như bạn có thể tạo ra một vòng lập hiển thò thông điệp "Movie loading " 2. Tạo một action nhảy ra khỏi vòng lập chuyển động sau khi tất cả các frame được nạp và tiếp tục phát đoạn phim. Ví dụ, một đoạn phim có 2 frame vòng lập chuyển động tại vò trí đầu tiên, bạn phải gắn action sau vào trong Frame 2: if(_framesloaded==100) { gotoAndPlay (3); } else { gotoAndPlay (1); } TỦ SÁCH STK – THẾ GIỚI ĐỒ HỌA BIÊN SOẠN : KS PHẠM QUANG HUY 272 . . FLASH 5.0 BẰNG HÌNH ẢNH CHƯƠNG 11 Điển hình như action If Frame Is Loaded được dùng như action frame nhưng nó có thể được sử dụng như action Button. Để kiểm tra một điều kiện If Frame Is Loaded,. NÀO MỘT FRAME ĐƯC NẠP VÀO Tạo một bộ nạp để ngăn chặn một vài action nào đó khỏi bò kích hoạt trước khi nội dung cần tải được người xem nạp về, bạn hãy sử dụng action If Frame Is Loaded. Một. (property) _framesloaded (bên trong một action If ) để kiểm tra xem liệu có nội dung của một frame đặc biệt có sẵn hay không. Dùng action hoặc property, bạn có thể bắt đầu diễn hoạt một chuyển