Hướng dẫn căn bản Flash CS4
Bạn đang xem 20 trang mẫu của tài liệu "Hướng dẫn căn bản Flash CS4", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- huong_dan_can_ban_flash_cs4.pdf
Nội dung text: Hướng dẫn căn bản Flash CS4
- ĐẠI HỌC BÁCH KHOA HÀ NỘI – KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM FLASH CS4 HƯỚNG DẪN CĂN BẢN CLB FLASH – KHOA CNTT 09
- FlashCS4 Professional Mục lục: Chương 1: Giới thiệu và cài đặt Flash CS4 Chương 2: Thiết kế hoạch hình với Flash Chương 3: Giới thiệu về Action Script 3.0 Chương 4: Action Script nâng cao Chương 5: Giới thiệu về Flex 1
- FlashCS4 Professional Lời tựa: Cuốn sách này là sản phẩm của quá trình làm thực tập của clb Flash K51 dưới sự hướng dẫn của thầy Lê Tấn Hùng – giảng viên bộ môn CNPM, khoa CNTT trường ĐHBKHN. Cuốn sách hướng tới những đối tượng mới tiếp xúc với Flash và đã có chút ít kinh nghiệm trong lập trình (C hoặc Pascal). Mặc dù vậy chúng tôi hi vọng những độc giả đã từng có kinh nghiệm với các phiên bản trước CS4 và đặc biệt những ai sử dụng Action Script 2.0 sẽ tìm thấy nhiều điều bổ ích ở cuốn sách này.Cuốn sách tiếp cận Flash từ góc độ của người thiết kế cũng như lập trình viên. Tuy nhiên, hướng tiếp cận từ góc độ lập trình viên được nhấn mạnh hơn. Trong cuốn sách này, Flash được nhắc đến không chỉ như một công cụ thiết kế mà còn với tư cách là một bộ thư viện. Chương 1: Giới thiệu bạn cách cài đặt Flash CS4 Chương 2: Giới thiệu cách thiết kế hoạt hình trong Flash và nhấn mạnh các đặc điểm mới của phiên bản CS4 so với các phiên bản trước đó. Chương 3: Tiếp cận với Action Script 3.0 giành cho những ai đã có kinh nghiệm lập trình chút ít, nếu bạn chưa có kinh nghiệm lập trình nên tìm đọc một cuốn sách về lập trình trước khi đọc chương này. Chúng tôi giành đa số thời gian đề cập đến đặc điểm của Action Script 3.0 so với các ngôn ngữ phổ biến như C# hay Java. Chương 4: Chương sách này được coi là cầu nối giữa lập trình viên và người thiết kế. Các vấn đề phát sinh khi kết hợp giữa viết code và sử dụng các tool có sẵn của Flash sẽ được đề cập. Chương 5: Sự phát triển của Flash đã dẫn tới nhu cầu phải phát triển nó thành một công cụ mạnh mẽ giành cho việc viết ứng dụng trên máy để bàn cũng như viết các ứng dụng Internet (RIA – Rich Internet Application). Để đáp ứng nhu cầu này, Flex ra đời dựa trên nền tảng Flash. Chương sách này đề cập tới các vấn đề căn bản về Flex mà bạn sẽ gặp phải khi phát triển trên môi trường này. Nếu bạn chưa có kinh nghiệm với Flash, chúng tôi khuyên bạn nên đọc lần lượt các chương, đặc biệt chương 5 có thể đọc lại sau khi đã đọc qua các tài liệu khác chúng tôi giới thiệu ở phần tham khảo. Nếu bạn đã là một „Flasher‟, bạn cũng sẽ tìm thấy nhiều điều bổ ích ở chương 2, 4, 5. Đa số các mục trong sách đều gắn với một bài thực hành đã được cung cấp file .fla (file chuẩn của Flash Proffesional CS4), và project (theo định dạng của Flex Builder 3) đi kèm. Bạn có thể tham khảo hoặc sử dụng tự do các tài liệu này. Vì hạn chế về thời lượng cũng như nhiều yếu tố khác, nên trong phiên bản sách này còn rất nhiều sai sót. Hi vọng sẽ nhận được sự góp ý của các bạn. 2
- FlashCS4 Professional Xin chân thành cảm ơn thầy Lê Tấn Hùng đã giúp đỡ chúng em hoàn thành quyển sách này. Hà Nội, ngày 29 tháng 5 năm 2009 Nhóm tác giả Nguyễn Hoàng Bách Nguyễn Thạch Dương Bùi Trung Hiếu Nguyễn Thành Linh Lê Anh Tùng 3
- FlashCS4 Professional Chương 1 : Giới thiệu Flash và Hướng dẫn cài đặt 1. Giới thiệu Flash: Bắt đầu ngay từ khi ra đời, Flash, đứa con cưng của Marcromedia, đã thổi 1 luồng sinh khí mới vào các trang web. Nó cho phép cộng đồng những người thích sáng tạo khai phá ra Web với tất cả những gì có thể : phim hoạt hình, nền game, ứng dụng được kết nối, gallery nghệ thuật , video chat, chương trình chơi nhạc MP3 hay bất cứ thứ gì nhiều hơn nữa mà bạn có thể nghĩ ra. Với ý tưởng đó, Macromedia đã sử dụng khẩu hiệu "What the Web can be" để tiếp thị cho đứa con của mình. Là 1 công cụ sử dụng kỹ thuật vector, Flash cho ra những hình ảnh tốn ít băng thông hơn các media tạo ảnh động khác rất nhiều. Điều mà ít người nhận ra là Flash không chỉ đạt hiệu quả về mặt băng thông mà nó còn làm được nhiều hơn thế. Khi phần mềm tiếp tục được phát triển thì phạm vi sử dụng của nó cũng ngày càng mở rộng, và bây giờ đã là 1 trong số những media số tương tác linh hoạt nhất không chỉ hoạt động được trên Internet, mà còn trên bảng điều khiển game lẫn các thiết bị di động. Nó thực sự là multimedia. Những chương trình tiên phong là các bộ phim hoạt hình ngắn (cartoon shorts) như FishBar của hãng Honkworm, phát trên MTV năm 1998. Hãng này sau đó đã sản xuất 1 loạt các phim gồm có FishBar, Violence of the Lambs. Loạt phim này đã chính thức được chọn tham dự festival phim trực tuyến Sundance và sau đó được hãng Mondo Media phát hành trên mạng. Ngay từ phiên bản thứ 3, Flash được dùng để tạo các trò chơi như Whack-a-Mole, Leo's Great Day ( ), và cả những nguyên mẫu thô sơ của trò Pacman và cờ vua. Bạn hãy nhớ lại rằng ở phiên bản đó, chưa có ActionScript nên người ta đã xây dựng chúng mà hoàn toàn không dùng 1 dòng lệnh nào. Kể từ khi ra mắt năm 1997, Macromedia Flash đã nhanh chóng trở thành chuẩn cho các tương tác và ảnh động chất lượng cao trên Web. Nó cung cấp âm thanh, tương tác, đồ hoạ, ảnh động trên nhiều loại nền và trình duyệt. Nó cho phép nhà phát triển tạo ra những giao diện thân thiện có tính tương tác và những ứng dụng Web khác biệt. ActionScript là ngôn ngữ lập trình sau hậu trường cung cấp cho người dùng nhiều kiểm soát và chức năng trong lập trình Flash hơn. Nói tóm lại, Flash cung cấp mọi thứ bạn cần để tạo và phân phối các ứng dụng mạnh có nội dung web phong phú. Bạn có thể tạo từ 1 hình ảnh động đơn giản cho đến 1 ứng dụng web có tương tác phức tạp, được điều khiển theo dữ liệu như 1 siêu thị trực tuyến Bạn có thể làm phong phú thêm ứng dụng Flash của mình bằng cách bổ sung hình ảnh, âm thanh, video từ bên ngoài. Flash cũng có những thành 4
- FlashCS4 Professional phần giao diện đã xây dựng sẵn bạn chỉ việc dùng, hay những behaviors tích hợp sẵn sẽ tự động bổ sung mã lệnh ActionScript vào chương trình của bạn. Câu chuyện về sự ra đời của Flash mà ít người biết đến cho chúng ta câu trả lời bằng cách nào mà cuộc cách mạng thực sự trong lĩnh vực multimedia này đã xảy ra. Trở lại cuối những năm 80, câu chuyện của chúng ta bắt đầu với 4 công ty. Đầu tiên là Macromind, một công ty phần mềm đặt tại Chicago có sản phần chính là ứng dụng mang tên VideoWorks. Tiếp đến là Paracomp, trụ sở tại San Francisco, nổi tiếng nhất với phần mềm Swivel3D, một ứng dụng 3D cho máy Macintosh. Công ty thứ 3 là Authorware, ở Minnesota với phần mềm Authorware, ứng dụng điều khiển CBT/multimedia. Vào năm 1991, Macromind đã chuyển đến San Francisco và sát nhập với công ty Paracomp thành Macromind-Paracomp. Authorware sau đó cũng rời khỏi Minnesota và sát nhập với Macromind-Paracomp ở Redwood Shores, California để thành lập nên hãng Macromedia hùng mạnh. Câu chuyện của chúng ta bắt đầu từ đây. Bạn có thể nhận ra là ta mới nhắc đến 3 thành viên trong bộ tứ làm nên câu chuyện. Vậy thành viên thứ tư ở đâu? Ta hãy cùng quay trở lại tháng Giêng năm 1993, Jonathan Gay, người viết những phần mềm trò chơi khá sớm sủa và đáng chân trọng cho Mac như Dark Castle và Beyond Dark Castle, đã thuyết phục bạn mình là Charlie Jackson (người sáng lập ra Silicon Beach Software) bỏ chút vốn đầu tư và giúp ông thành lập công ty FutureWave. Công ty này có sản phẩm đầu tay là ứng dụng Go và mục đích chính của công ty là sản xuất những phần mềm có khả năng chiếm lĩnh thị trường máy tính bút (pen computer market). Nhưng thật không may là những chiếc máy tính này không được tiếp nhận, lại thêm những can thiệp của hãng AT&T nên Go trở thành 1 ứng dụng không có thị trường. FutureWave gặp khó khăn nghiêm trọng vì nó chỉ là 1 công ty nhỏ không có nguồn thu nhập và đã phải sử dụng cả năm trời để phát triển 1 phần mềm mà có khả năng sẽ không bao giờ thấy được ánh sáng của 1 ngày mới. Sự cứu nguy cho nó chỉ còn trông chờ vào 1 phần mềm nhỏ mang tên SmartSketch mà họ đã phát triển như một giải pháp phụ bên cạnh Go. FutureWave bắt đầu tiếp thị SmartSketch, 1 công cụ để vẽ, dùng được trên cả 2 nền Macintosh và Windows. Đó là thời điểm không lâu trước khi người ta đặt ra câu hỏi tại sao FutureWave không biến SmartSketch thành 1 chương trình tạo animation 2D. Có lẽ, một trong số những ví dụ cừ khôi nhất của khả năng tiên đoán công nghệ (technological foresight) là khi FutureWave chuyển SmartSketch từ 1 chương trình tạo ảnh tĩnh thành chương trình tạo animation. Sự chuyển đổi này chỉ dựa trên hy vọng rằng Internet sẽ là 1 phương tiện lớn để truyền tải 2D animation. Sau khi cả Adobe và Fractal Design từ chối mua công nghệ này, FutureWave phát hành phần mềm FutureSplash Animator vào mùa hè năm 1996. Đây là 1 ứng dụng tương đối đơn giản cho phép tạo ảnh động trên cơ sở vector tuyến tính. Phần mềm này sau đó đã thu được 1 số sự chú ý khi nó được dùng để thiết kế phiên bản web MSN của Microsoft và tạp chí Disney Daily Blast. Tháng 11 năm 1996, Macromedia đề nghị FutureWave cùng hợp tác làm ăn. Với FutureWave, một công ty nhỏ chỉ với 6 nhân viên thì đây quả là 1 cơ hội bất ngờ. Do đó, vào tháng 12 năm ấy, 5
- FlashCS4 Professional FutureWave đã bán công nghệ cho Macromedia. Hãng này sau đó phát hành phiên bản đầu tiên của Flash vào đầu năm 1997. Sau khi được vực dậy bởi Macromedia, Flash bắt đầu phát triển như 1 công cụ phần mềm. Mỗi phiên bản mới của nó lại cung cấp những bước tiến đáng kể về khả năng sử dụng của phần mềm: Flash 1: thực sự chỉ là một nhãn hiệu khác của FutureSplash. Nó có những tính năng cơ bản của một chương trình tạo ảnh động vector (vector animation): đó là các công cụ hiệu đính cơ bản (theo chuẩn của Flash MX) và bảng thời gian chuyển động (timeline). Ưu việt lớn nhất của nó là cùng với sự trợ giúp của 1 Netscape plug-in hay 1 điều khiển ActiveX Internet Explorer, người dùng có thể đưa animation lên Web cho tất cả những người khác có thể xem và thưởng thức. Flash 2: là 1 bước tiến lớn của ứng dụng này. Nói chung thì nó bắt đầu cho sự chuyển đổi của Flash từ 1 chương trình tạo ảnh động vector tuyến tính đơn thuần thành 1 chương trình thiết kế media có tính tương tác. Sự chuyển đổi này xuất phát từ việc tích hợp các đặc tính như biểu tượng nút tái sử dụng được, đồ hoạ nhúng, font chữ vector, những action rất cơ bản, và âm thanh stereo. Flash 2 cũng cho phép nhập các file có định dạng EPS, GIF, JPEG, AutoCAD DXF, BMP, Enhanced Metafile, AIFF, Windows Metafile, và Shockwave. Flash 3: Bên cạnh sự cải tiến về giao diện thì một trong số những bổ sung đáng kể nhất trong Flash 3 là tầm quan trọng và khả năng tích hợp của các actions đã tăng lên. Được xây dựng lỏng lẻo trên ngôn ngữ Javacript, actions (mà sau này được phát triển thành ActionScript) cho phép người dùng kiểm soát và tương tác với movies của họ ở 1 mức độ nhất định. Hơn nữa, sự tương tác của mask, shape tweening, và sự trong suốt cho phép người dùng tận dụng được sự kiểm soát hơn đối với việc tác phẩm của họ thực sự trông như thế nào. Phiên bản này chưa có được 1 ngôn ngữ kịch bản chính thống. Flash 4: được phát hành năm 1999. Một trong số những cải tiến thú vị nhất của phiên bản này là khả năng thực thi file nén MP3 trong môi trường Flash movie. Phiên bản rất sơ khai của ActionScript lần đầu tiên xuất hiện trong Flash. Nó làm cho việc thiết kế giao diện, thiết kế game tương tác dễ dàng hơn. Những cải tiến khác bao gồm các trường văn bản chỉnh sửa được, giao diện thân thiện, và quá trình publish được đơn giản hoá. Flash 5: Sự nâng cấp lớn nhất trong Flash 5 chính là ActionScript. ActionScript được xây dựng theo chuẩn ECMA-262. Hệ thống ActionScript của Flash tiếp tục được bổ sung với Javascript, định dạng HTML. Macromedia đã thông báo với thế giới rằng Flash và ActionScript sẵn sàng cạnh tranh với bất kỳ đối thủ nào. Những thay đổi khác trong phiên bản này là ở phần giao diện: thêm các công cụ sáng tác, lời giới thiệu panels, Movie Explorer, Macromedia Dashboard (để hỗ trợ và cập nhật qua mạng), các phím tắt do người dùng tự đặt cho các tác vụ và hàm. Flash MX: là một bước tiến lớn của Flash. Hệ thống ActionScript được bổ sung UI 6
- FlashCS4 Professional Component, xml. Đây thực ra chỉ là phiên bản thứ sáu của ứng dụng nhưng Macromedia không đánh số phiên bản như trước nữa mà thay vào đó là cái tên MX. Tại sao phải dùng 1 cái tên mới? Theo Macromedia thì họ sử dụng cái tên đó nhằm báo cho nhà phát triển rằng ứng dụng này gồm có các giải pháp được tích hợp phục vụ cho các media số trên Internet. Vì các công cụ của Macromedia (như Flash, Dreamweaver, ColdFusion, ) có thể tích hợp chặt chẽ với nhau, nên công ty cảm thấy mọi việc chỉ hợp lý khi các ứng dụng của họ mang cùng 1 cái tên. MX đơn giản là nhãn hiệu sử dụng cho hệ thống các công cụ của Macromedia. Về mặt đặc điểm mà nói thì Flash MX có những nâng cấp rất giá trị. Đáng chú ý nhất là giao diện mới, sử dụng tốt, và được phân nhỏ hơn. Trong phần mềm còn có các thành phần tạo sẵn, là những bộ phận, thiết bị nhỏ có thể dùng ngay, mà nếu trong điều kiện bình thường ta sẽ mất rất nhiều thời gian để tạo từ đầu. Thêm nữa, sự tích hợp nhiều công cụ thiết kế trực quan mới như free transform tool, envelope modifier, bộ hỗ trợ xử lý văn bản nâng cao, và bộ trộn màu nâng cao, cho phép người dùng kiểm soát chặt chẽ hơn các tác phẩm của mình. Flash MX 2004: Tại phiên bản này, ActionScript 2.0 đã chính thức ra mắt. Đây là 1 công cụ hoàn hảo cho người thiết kế web, chuyên gia trong lĩnh vực media tương tác, hay chuyên gia phát triển nội dung multimedia. Trọng tâm của phiên bản được đặt vào việc tạo, nhập liệu và thao tác nhiều loại media (như audio, video, bitmaps, vectors, text, và dữ liệu). Flash MX Professional 2004: được dành cho các nhà thiết kế web và xây dựng phần mềm cấp cao. Phiên bản này gồm tất cả các đặc tính của Flash MX 2004, cùng với một số công cụ mạnh mới. Nó cung cấp những công cụ quản lý dự án để tối ưu hoá lược đồ công việc giữa các thành viên trong 1 đội làm web gồm nhà thiết kế và người phát triển. Khả năng lập mã bên ngoài và xử lý dữ liệu từ database là 1 số đặc tính làm cho Flash đặc biệt phù hợp cho các dự án phức tạp, qui mô lớn được triển khai bằng cách sử dụng Flash Player cùng với 1 hệ lai HTML làm nội dung. ActionScript 2.0: chính thức ra mắt trong phiên bản Flash MX 2004. Đó là 1 ngôn ngữ hướng đối tượng theo chuẩn ECMA, hỗ trợ tính kế thừa, đặt kiểu mạnh và có mô hình sự kiện. Macromedia Flash 8 Basic : phiên bản được công bố ngày 13/9/2005, phiên bản này là một phiên bản rút gọn các tính năng của công cụ Flash, hướng vào đối tượng người dùng chỉ muốn các tính năng cơ bản về vẽ, tạo hình động và tương tác. Ra đời cùng Flash Player 8, phiên bản này hạn chế hỗ trợ video và các hiệu ứng hình ảnh cũng như hoạt hoạt. Macromedia Flash 8 Professional 8 : phiển bản này nhấn mạnh vào video và mobile. Các chức năng mới bap gồm Filter và chế độ blend, khả năng tùy biến chuyển động, hỗ trợ stroke, chế độ vẽ dựa trên vật thể, chế độ cache ảnh tại thời gian thực, chế độ FlashType chống chữ nhòe, video định dạng On2 VP6, hỗ trợ tùy chỉnh mờ cho video, một bộ mã hóa và import video riêng, hỗ trợ cue point cho file dạng FLV, một thành phần (component) chạy video với nhiều chức năng nâng cao và một bộ giả lập mobile. 7
- FlashCS4 Professional Action Script 3.0: Đây là một ngôn ngữ hướng đối tượng hoàn toàn và có bộ thư viện mạnh mẽ. Từ sau sự ra đời của Action Script 3.0, hướng phát triển của Flash đã vô cùng đa dạng, không chỉ là môi trường web hay mobile; mà còn là ứng dụng internet - RIA (Rich Internet Application) và máy để bàn. Adobe Flash CS3 Professional: (hay là phiên bản 9) Được ra đời vào ngày 16 tháng 4 năm 2007, đây là phiên bản đầy tiên ra đời dưới thương hiệu Adobe. CS3 đã hỗ trợ đầy đủ Action Script 3.0 cho phép toàn bộ ứng dụng được chuyển sang Action Script mà không cần tới thiết kế trong tool Adobe Flash CS3 Professional, tương tác tốt hơn với các sản phẩm của Adobe như Adobe Photoshop, Adobe Fireworks, Adobe After Effect, Adobe Illustrator tạo thành một qui trình xây dựng phần mềm/web hoàn chỉnh bằng các sản phẩm của Adobe; hỗ trợ vẽ vector tốt hơn, thừa hưởng các ưu điểm của Adobe Illustrator và Adobe Fireworks. Adobe Flash CS4 Professional: (phiên bản 10) Được công bố vào ngày 15 tháng 10 năm 2008. Phiên bản này chứa một số tính năng mang tính cánh mạng như: khung xương, xử lý vật thể 3 chiều cơ bản, animation hướng đối tượng, cơ chế xử lý chữ nâng cao và một số cải tiến của Action Script 3.0. CS4 cho phép lập trình viên tạo chuyển động hiệu quả và nhanh chóng hơn với rất nhiều tính năng nâng cao mà các phiên bản trước không có. Adobe Flex Builder: Đây là một bản hỗ trợ phát triển ứng dụng Internet dựa trên nền tảng Adobe Flash. Ứng dụng Flex có thể được viết bằng Adobe Flex Builder hoặc Flex SDK được cung cấp miễn phí. Hiện tại đã có phiên bản Adobe Flex Builder 3. Ứng dụng Flex có thể được viết bằng Action Script kết hợp với ngôn ngữ đánh dấu MXML, cách phát triển Flex khác với cách phát triển Flash khi mà môi trường phát triển gần giống như các IDE khác như Visual Studio hay Netbean mà bỏ đi các công cụ vẽ hay timeline truyền thống của Flash. Flash đã phát triển từ một công cụ chuyên vẽ hoạt hình thành một nền tảng mạnh mẽ, gọn nhẹ thích hợp cho việc phát triển các đoạn hoạt hình, các game vừa và nhỏ, các ứng dụng Internet, ứng dụng trên máy tính để bàn, ứng dụng giành cho điện thoạt di động Được sự hậu thuẫn của Adobe, Flash chắc chắn sẽ còn phát triển hơn nữa, tiến dần vào các lĩnh vực như hiệu ứng truyền hình, phim ảnh (phim Star Trek ~ 2009 có sử dụng các hiệu ứng bằng Flash) Trong thời điểm hiện tại và tương lai gần, có thể khẳng định rằng khó có nền tảng nào có thể cạnh tranh với Flash trong lĩnh vực ứng dụng Internet. 2. Cài đặt Flash CS4: Trong phần sau đây bạn sẽ được hướng dẫn cách cài đặt Flash CS4 I- YÊU CẦU CẤU HÌNH HỆ THỐNG: Windows: CPU: 1GHz trở lên 8
- FlashCS4 Professional OS: Microsoft® Windows® XP Service Pack 2 (Khuyến cáo Service Pack 3), Windows Vista® Home Premium, Business, Ultimate, Enterprice Service Pack 1 (đã được kiểm định với các phiên bản 32-bit). RAM: 1GB trở lên Bộ nhớ trống: Tối thiểu 3.5GB cho quá trình cài đặt ( không cài trên bộ nhớ flash ) Màn hình: Độ phân giải 1024x768 với 16-bit đồ họa trở lên. Ổ quang: DVD-ROM Phần mềm: Quicktime 7.12 trở lên giúp hỗ trợ các tính năng đa phương tiện. Internet: Đường truyền băng thông rộng cho các dịch vụ online. Macintosh: CPU: PowerPC® G5 hoặc Bộ vi xử lí đa nhân của Intel OS: Tiger OSX 10.4.11, Leopard 10.5.4 trở lên RAM: 1GB trở lên Bộ nhớ trống: Tối thiểu 4GB cho quá trình cài đặt ( không cài trên bộ nhớ flash ) Màn hình: Độ phân giải 1024x768 với 16-bit đồ họa trở lên. Ổ quang: DVD-ROM Phần mềm: Quicktime 7.12 trở lên giúp hỗ trợ các tính năng đa phương tiện. Internet: Đường truyền băng thông rộng cho các dịch vụ online. II- CÀI ĐẶT: 1- Trước khi tiến hành cài đặt, tắt tất cả các ứng dụng đang chạy, bao gồm cả các ứng dụng của Adobe, Micosoft Office, và các trình duyệt. Các bạn cũng được khuyến cáo nên tạm thời tắt các phần mềm diệt virus trong quá trình cài đặt. 2- Đăng nhập bằng tài khoản quản trị (Administrative Account) 3- Làm theo hướng dẫn sau: - Cho đĩa DVD cài đặt vào ổ, và làm theo các chỉ dẫn trên màn hình. Nếu bộ chương trình không được tự động cài đặt, vào thư mục Adobe CS4 trong thư mục gốc của đĩa cài, click đúp vào file Setup.exe và bắt đầu quá trình cài đặt. - Nếu bạn download phần mềm từ Internet, vào thư mục Adobe CS4, click đúp vào file Setup.exe và bắt đầu quá trình cài đặt. 4- Nếu nâng cấp từ phiên bản cũ, chương trình cài đặt sẽ kiểm tra hệ thống để chọn những sản phẩm được nâng cấp. Nếu ko thể tìm ra, chương trình sẽ hỏi bạn nhập mã đăng kí (serial number) của phần mềm được nâng cấp. Bạn cũng có thể cài đặt phần mềm dưới dạng dùng thử (trial), sau đó nhập mã đăng kí mới vào cửa sổ đăng kí lúc sử dụng phầm mềm. 9
- FlashCS4 Professional *) Lưu ý: Để cài đặt các gói bổ sung hoặc cài lại phần mềm sau khi đã cài đặt hoàn tất, bạn cần sử dụng bộ cài gốc ( nằm trong CD, DVD hoặc từ Internet) III- GỠ BỎ CÀI ĐẶT: 1- Trước khi gỡ bỏ cài đặt, tắt toàn bộ các chương trình đang chạy, bao gồm cả các ứng dụng của Adobe, Microsoft Office, và các trình duyệt, 2- Làm theo hướng dẫn sau: - WINDOWS XP: Mở cửa sổ Control Panel và click đúp vào biểu tượng Add or Remove Programs, chọn phần mềm cần gỡ bỏ, Click Uninstall/ Change, và làm theo các chỉ dẫn trên màn hình. - WINDOWS VISTA: Mở cửa sổ Control Panel và click đúp vào biểu tượng Programs and Features, chọn phần mềm cần gỡ bỏ, click Uninstall/Change, và làm theo các chỉ dẫn trên màn hình. - MAC OS (QUAN TRỌNG): đối với hệ điều hành của Apple có tính năng gỡ bỏ mới. Không gỡ bỏ theo phương thức truyền thống là kéo thả ứng dụng vào thùng rác (Trash). Để gỡ bỏ một cách an toàn, click đúp vào bộ cài có trong đường dẫn Application/Utilities/Adobe Installers, đăng nhập bằng tài khoản quản trị, rồi chọn Remove Components và làm theo các chỉ dẫn trên màn hình. HƯỚNG DẪN CÀI ĐẶT BẰNG HÌNH ẢNH: Vào thư mục cài đặt, click đúp vào file Setup.exe để tiến hành cài đặt. 10
- FlashCS4 Professional Chương trình cài đặt tiến hành kiểm tra thông tin cấu hình máy tính. Nhập mã đăng kí, hoặc lựa chọn cài đặt dùng thử sản phẩm, rồi chọn Next. 11
- FlashCS4 Professional - Chọn ngôn ngữ sử dụng, đường dẫn cài đặt, và các ứng dụng đi kèm rồi click Install để bắt đầu quá trình cài đặt. - Quá trình cài đặt bắt đầu. 12
- FlashCS4 Professional - Đăng kí thông tin cá nhân: - Click Exit để hoàn tất việc cài đặt Adobe Flash. 13
- FlashCS4 Professional HƯỚNG DẪN GỠ BỎ ADOBE FLASH BẰNG HÌNH ẢNH: Mở cửa sổ Control Panel và click đúp vào biểu tượng Programs and Features, click đúp vào biểu tượng Adobe Flash CS4 Professional. Đánh dấu vào ô Remove Application Preferences nếu muốn xóa mọi cài đặt. 14
- FlashCS4 Professional Quá trình gỡ bỏ bắt đầu Click Exit để hoàn tất việc gỡ bỏ Adobe Flash. 15
- FlashCS4 Professional 16
- FlashCS4 Professional Chương 2: THIẾT KẾ HOẠT HÌNH VỚI FLASH Giới thiệu: Flash là 1 công cụ sử dụng kỹ thuật vector được phát triển từ năm 1997 do hãng Macromedia. Điểm mạnh của Flash nằm ở bộ công cụ vẽ vector hoàn thiện và các công cụ tạo chuyển động thông minh và mềm dẻo. Chương này sẽ giúp các bạn: 1. Làm quen với môi trường làm việc của Flash CS4 2. Cách vẽ, tô màu chuyên nghiệp 3. Tạo các chuyển động hoạt hình 17
- FlashCS4 Professional Bài 1: Làm quen với Flash CS4 Mục tiêu bài học: 1. Môi trường làm việc của FlashCS4. 2. Các khái niệm cơ bản. 1. Giao diện của Flash Professional CS4: Để tạo 1 file Flash mới sử dụng các lựa chọn được liệt kê ở trên. Góc trên bên phải là các cách sắp xếp vùng làm việc tùy theo đối tượng sử dụng. Mặc định là kiểu Essential. 18
- FlashCS4 Professional Do mục đích của chương này nên ta chọn kiểu làm việc Designer. Có một số vùng làm việc quan trọng được hiển thi: 1. Timeline: Timeline là trục thời gian, thông số fps (frame per second) chỉ ra số frame (cảnh) được diễn ra trong 1 giây. Vạch đỏ chỉ frame hiện tại được hiển thị. 19
- FlashCS4 Professional Trong hình trên, frame đang hiển thị là frame 5. Mỗi dòng là 1 layer. Có thể hình dung mỗi layer như một lớp bóng kính trong suốt mà ta có thể vẽ lên trên. Trong hình trên: Layer 2 có các frame 1,5 là keyframe, có 15 frame; layer 1 chỉ có 1 frame 1 và là keyframe. Keyframe là frame mà tại đó nội dung của nó không liên quan đến các frame khác. Các frame không phải keyframe thì nội dung của nó là nội dung của keyframe trước đó gần nhất. Để khóa không chỉnh sửa một layer ta sử dụng biểu tượng Không hiển thị layer, ta sử dụng biểu tượng Để thêm layer, ta sử dụng biểu tượng hoặc click chuột phải vào 1 layer bất kì, chọn “Insert layer”. Để xóa layer đang chọn, ta sử dụng biểu tượng hoặc click chuột phải vào layer cần xóa, chọn “Delete layer”. Sử dụng Timeline: Bộ phận này được dùng để tổ chức, điều khiển nội dung movie theo thời gian dưới dạng các lớp và khung hình. Cũng giống như khi làm phim, người ta chia độ dài về mặt thời gian của 1 Flash movie thành các khung hình liên tiếp. Các lớp thì có thể được coi như những dải phim xếp chồng lên nhau. Mỗi lớp là 1 hình ảnh khác nhau được đặt trên Stage. Thành phần chính của Timeline gồm có: lớp (layers), khung hình (frames), và playhead (khi playhead trỏ đến khung hình nào thì khung hình đó được thể hiện. Nó có nhiệm vụ chạy từ đầu film đến cuối film để các khung hình lần lượt được hiện ra) (xem hình dưới). Các lớp của movie được liệt kê dưới dạng cột bên phía trái của bảng điều khiển Timeline. các khung hình có trong mỗi lớp xuất hiện theo hàng nằm bên phải của tên lớp. Vạch Timeline header nằm trên cùng của bảng để chỉ ra số thứ tự các khung hình. Còn playhead, vạch màu đỏ, là để chỉ ra khung hình nào đang được biểu biễn trên Stage. Thông tin về trạng thái của Timeline được đặt ở cuối bảng, cho ta biết khung số mấy đang được chọn, tốc độ trôi của khung hình, và thời gian chạy từ khung hình thứ nhất đến khung hình hiện tại là bao nhiêu. 20
- FlashCS4 Professional Bạn có thể thay đổi các khung hình biểu diễn trong Timeline, cũng như đặt dấu (thumbnails, chấm đen, trắng, vuông, tròn ) cho nội dung của khung hình. Bảng điều khiển này cho biết ở khung hình nào thì có animation. Có 3 loại hình động là animation theo cách hiển thị lần lượt các khung hình, theo cách biến đổi hình dạng và biến đổi theo đường đi. Để biết nhiều thông tin hơn về animation, bạn hãy xem chương 3. Những điều khiển bên cạnh tên lớp trong bảng Timeline cho phép bạn ẩn, hiện, khoá, hay mở khoá các lớp, cũng như biểu diễn nội dung của lớp ở dạng đường viền. Bạn có thể chèn, xoá, chọn và di chuyển các khung hình trong Timeline, cũng như có thể dịch chuyển khung hình đến vị trí mới trên cùng 1 lớp hay sang lớp khác. Sử dụng Frames và Keyframes: Keyframe là khung hình đặc biệt, đánh dấu mốc thay đổi trong animation, hay chứa các actions để điều khiển movie. Flash có thể tự sinh các khung hình (tween) giữa những keyframe để tạo hình ảnh animation liền mạch. Chức năng này của Flash giúp bạn tạo animation dễ dàng hơn vì bạn không phải vẽ từng frame 1 nữa mà chỉ cần tạo một số khung hình mốc. Thời lượng của 1 animation cũng có thể thay đổi được bằng cách dịch chuyển các keyframes trong Timeline. Thứ tự xuất hiện khung hình và keyframe trong bảng Timeline sẽ quyết định thứ tự 21
- FlashCS4 Professional xuất hiện của chúng trong 1 Flash movie. Bằng cách sắp xếp các keyframes trong Timeline, ta có thể biên tập chuỗi các sự kiện của animation một cách tuỳ ý. Làm việc với các khung hình trong bảng Timeline: Bạn có thể thực hiện những công việc chỉnh sửa đối với frames và keyframes: - chèn, chọn, xoá, dịch chuyển frames và keyframes. - Kéo frames và keyframes đến vị trí mới trong cùng 1 lớp hay sang lớp khác. - Sao chép frames, keyframes. - Kéo các thành phần từ Library panel ra Stage để thêm thành phần vào keyframe hiện tại. Có hai cách để chọn khung hình trong Timeline. Cách chọn mặc định là chọn theo khung hình, bạn phải chọn từng khung hình riêng lẻ. Trong cách chọn theo khoảng (span-based), toàn bộ khung hình từ keyframe này cho đến keyframe tiếp theo sẽ được chọn khi bạn click bất kỳ khung hình nào nằm trong khoảng đó. Người dùng hoàn toàn có thể tự đặt chế độ chọn theo ý mình. Để chèn khung hình vào Timeline, có 1 số cách như sau: - Chèn 1 khung hình mới: chọn Insert -> Timeline -> Frame. - Tạo keyframe mới: chọn Insert -> Timeline -> Keyframe, hoặc kích chuột phải vào frame được chọn, chọn tiếp Insert Keyframe trên menu vừa bật ra. - Tạo keyframe trắng: chọn Insert -> Timeline -> Blank Keyframe, hoặc kích chuột phải, chọn chức năng Insert Blank Keyframe. Để chọn 1 hay nhiều khung hình trong Timeline: - Chọn 1 khung hình, rồi kích vào đó. Nếu bạn đặt chế độ chọn theo khoảng thì khi kích vào 1 khung hình, toàn bộ chuỗi khung hình nằm giữa 2 keyframes sẽ được chọn. - Chọn nhiều khung hình liền kề nhau: bấm Shift và click các khung hình cần chọn. - Chọn các khung hình không kề nhau: bấm Control và click các khung hình cần chọn. Để chọn tất cả các khung hình trong Timeline: - Chọn Edit -> Timeline -> Select All Frames. 22
- FlashCS4 Professional Để xoá hay chỉnh sửa 1 frame, keyframe, thực hiện 1 trong số các cách sau: - Xoá 1 khung hình, 1 keyframe hay chuỗi các khung hình: chọn những khung hình cần xoá, chọn Edit -> Timeline -> Remove Frame, hoặc kích chuột phải vào khung hình đã chọn rồi chọn tiếp Remove Frame từ menu vừa xuất hiện. Những frames xung quanh vẫn không thay đổi. - Để dịch chuyển 1 keyframe hay 1 chuỗi các khung hình cùng nội dung của chúng thì chỉ việc kéo keyframe hay chuỗi khung hình đó đến vị trí mong muốn. - Để mở rộng khoảng thời gian của 1 keyframe, bấm Alt và kéo keyframe đó đến khung hình cuối cùng trong chuỗi mới. - Để sao chép keyframe hay chuỗi khung hình: bấm Alt-click và kéo keyframe đó đến vị trí mới. - Để sao chép 1 hay nhiều khung hình: chọn những khung hình đó rồi chọn Edit -> Timeline -> Copy Frames. Chọn khung hình hay chuỗi khung hình mà bạn muốn thay thế, rồi chọn Edit > Timeline > Paste Frames. - Để chuyển 1 keyframe thành khung hình bình thường, ta chọn keyframe rồi vào Edit -> Timeline -> Clear Keyframe, hay kích chuột phải lên keyframe rồi từ menu bật ra, chọn tiếp Clear Keyframe. Keyframe đã được xoá và tất cả các khung hình tiếp sau đó cho đến keyframe tiếp theo sẽ được thay thế bằng nội dung của frame đứng liền trước keyframe đã xoá. - Để thay đổi độ dài của 1 chuỗi khung hình đã tweened (được Flash tự động tạo nội dung): kéo keyframe bắt đầu hay cuối cùng của chuỗi đó về bên trái hay bên phải tương ứng. - Để thêm 1 thành phần từ thư viện vào keyframe hiện tại: kéo thành phần đó từ Library panel vào Stage. Làm việc với lớp: Bạn có thể coi lớp như những tờ giấy acetate trong suốt được xếp chồng lên nhau. Những lớp này giúp bạn tổ chức tác phẩm của mình dễ dàng hơn. Bạn hoàn toàn có thể vẽ và chỉnh sửa trên mỗi lớp mà không làm ảnh hưởng đến các lớp khác. Nếu trên 1 lớp không có đối tượng nào, hay nói cách khác là nó trống rỗng thì bạn có thể nhìn xuyên qua nó đến những lớp bên dưới. Để vẽ, tô màu hay chỉnh sửa lớp, bạn phải chọn lớp đó để đặt nó trong trạng thái làm việc (active). Biểu tượng chiếc bút chì ở cạnh tên lớp cho ta biết lớp đó có được chọn hay không. Mặc dù có thể có nhiều lớp được chọn tại 1 thời điểm nhưng chỉ có 1 lớp là người dùng thực sự làm việc trên đó. Khi bạn tạo 1 file Flash mới (Flash Document), chương trình sẽ tạo sẵn trong đó 1 23
- FlashCS4 Professional lớp. Bạn có thể bổ sung thêm nhiều lớp tuỳ ý. Số lớp bạn sử dụng chỉ bị giới hạn bởi bộ nhớ máy tính của bạn và các lớp này không hề làm tăng kích thước file .swf. Bạn có thể ẩn, khoá hay sắp xếp lại thứ tự các lớp. Bạn cũng có thể tổ chức và quản lý các lớp bằng cách tạo những folder và đặt các lớp vào trong folder đó. Bạn có thể mở rộng hay thu nhỏ các lớp trong bảng Timeline mà không làm ảnh hưởng đến những gì bạn thấy trên Stage. Đó là 1 ý kiến tốt nếu bạn dùng các lớp hay folder riêng biệt cho các file âm thanh, actions, nhãn của khung hình, và lời chú thích cho khung hình. Điều này giúp bạn tìm những thành phần đó nhanh hơn khi bạn cần chỉnh sửa chúng. Thêm nữa, bạn có thể sử dụng các lớp chỉ dẫn đặc biệt để việc vẽ và biên tập được dễ dàng hơn, dùng các lớp mặt nạ (mask layers) để tạo những hiệu ứng phức tạp. Để tìm hiểu kỹ hơn thao tác làm việc với lớp trong Flash, bạn hãy chọn Help -> How Do I -> Basic Flash -> Work with Layers. 2. Tools: Các tool quan trọng hay được sử dụng: Selection Tool, Free Transform Tool, Text Tool, Line Tool, Rectangle Tool, Pen Tool, Brush Tool, Paint Bucket Tool, Eraser Tool, Zoom Tool. Selection Tool: được sử dụng để chọn các đối tượng Free Transform Tool: được sử dụng để thay đổi kích cỡ (scale), làm méo (skew), 3. Stage: 24
- FlashCS4 Professional Đây là khu vực làm việc chính. Tất cả mọi công việc vẽ, thực hiện chuyển động đều thực hiện trên khu vực này. Làm việc với Stage: Sử dụng grid, guides, rulers: Trong Flash có rulers và guides giúp người dùng vẽ và sắp đặt các đối tượng 1 cách chính xác. Bạn có thể định ra các guides và bắt (snap) đối tượng theo các guides đó hay bật chế độ hiện lưới và bắt đối tượng dóng theo đó. Chú ý: Bạn có thể bắt đối tượng vào các đối tượng khác hay vào các pixel, hay dóng đối tượng bằng cách sử dụng những đường viền dung sai. a) Dùng grid: Khi chế độ lưới được bật, một tập các đường thẳng xuất hiện phía sau tác phẩm của bạn trong mọi cảnh. Bạn có thể bắt đối tượng vào các lưới đó, và chỉnh sửa kích thước của lưới cũng như màu đường lưới. Để hiển thị hay ẩn lưới vẽ: ta chọn View -> Grid -> Show Grid. Để bật, tắt chế độ bắt (snap) theo lưới: chọn View -> Snapping -> Snap to Grid. Để đặt tuỳ chọn cho lưới: 25
- FlashCS4 Professional 1. Chọn View -> Grid -> Edit Grid. Cửa sổ sau xuất hiện: 2. Chọn màu cho đường lưới: click vào tam giác nhỏ trong hộp màu và chọn màu tuỳ ý từ bảng. Màu mặc định cho đường lưới là màu ghi (gray). 3. Chọn Show Grid để hiện lưới. 4. Chọn Snap to Grid để bật chế độ bắt theo lưới. Sự khác biệt khi bật hay tắt chế độ này được thể hiện ở hình sau: Hình elip bên trái được vẽ bằng công cụ bút chì khi không có chế độ Snap to Grid. Còn hình bên phải có, ta thấy Flash đã tự điều chỉnh để các tiếp tuyến chính của elip 26
- FlashCS4 Professional trùng với đường lưới. 5. Để điều chỉnh khoảng cách giữa các đường lưới, người dùng nhập giá trị vào hộp văn bản bên cạnh mũi tên ngang và dọc trên cửa sổ Grid. 6. Có thể thay đổi độ chính xác trong việc bắt lưới bằng cách chọn các tuỳ chọn ở mục Snap accuracy. 7. Nếu muốn những cài đặt đó trở thành mặc định thì click Save Default. b) Dùng guides: Để giúp cho việc vẽ hình đơn giản hơn, Flash cho phép người dùng tạo ra các lớp hướng dẫn (guide layers). Rồi dựa vào những lớp đó, người dùng dóng các đối tượng trên lớp khác với đối tượng đã tạo trên lớp guide. Các lớp guide này sẽ không có mặt trong file swf, và ta có thể chọn bất kỳ lớp nào làm lớp guide. Bên trái tên lớp có biểu tượng riêng, giống như hình 1 chiếc búa, chỉ ra rằng nó là lớp hướng dẫn. Bạn có thể tạo 1 lớp guide để kiểm soát chuyển động của đối tượng trong 1 animation. Thay vì Flash tự động tạo ra đường chuyển động của đối tượng thì bằng lớp guide này bạn có thể cho đối tượng chuyển động theo lộ trình mà bạn tự vạch ra. Chú ý: Nếu bạn kéo 1 lớp bình thường lên trên lớp guide thì Flash sẽ hiểu là bạn đã chuyển lớp guide thành lớp guide chuyển động. Để tránh sự thay đổi vô ý này, tốt nhất ta nên đặt tất cả các lớp guide ở phía cuối trong thứ tự lớp. Để chỉ định 1 lớp bình thường làm lớp guide: Chọn lớp đó và click chuột phải, chọn tiếp mục Guide từ menu vừa xuất hiện. Muốn chuyển lớp guide thành lớp bình thường thì ta cũng làm như vậy và chọn Guide 1 lần nữa để đưa nó về trạng thái ban đầu. c) Dùng rulers: Để hiện thước đo, ta chọn View -> Rulers. Để xác định đơn vị cho thước, ta vào Modify -> Document rồi chọn đơn vị là pixels, inches, centimeters, tuỳ ý. Thước đo sẽ xuất hiện ở cạnh bên trái và cạnh phía trên của văn bản. Khi ta dịch chuyển 1 phần tử trên Stage, các vạch trên 2 thước đo vuông góc cho biết chiều dài 27
- FlashCS4 Professional và chiều rộng của phần tử cũng dịch chuyển theo. 4. Properties: Đây là một panel quan trọng, chứa các thông số của đối tượng đang được lựa chọn. Ví dụ khi ta chọn một hình được vẽ trên stage thì sẽ có panel properties như sau: Tùy vào đối tượng đang được chọn mà sẽ có các loại thông số khác nhau hiển thị ở panel properties 2. Các khái niệm cơ bản trong Flash: Symbol: Khi muốn định nghĩa một đối tượng trong Flash, ta dùng khái niệm Symbol. Các loại symbol: Movie Clip, Button, Graphic Chọn đối tượng cần định nghĩa, click chuột phải -> chọn convert to symbol 28
- FlashCS4 Professional Classic Tween: Khi muốn cho một Symbol thay đổi thông số (vị trí, màu sắc, ) từ frame này tới frame kia ta dùng khái niệm Classic Tween. Ví dụ: Ta có 1 Symbol tên là Symbol1 ở frame1, ở frame20; symbol đó thay đổi vị trí. Để làm được việc này, giả sử frame1 đã có sẵn symbol trong stage. Chọn frame20, click chuột phải và chọn “Insert Keyframe”. Ở khoảng giữa 2 frame ta chọn “Create Classic Tween”. Ấn Enter để xem kết quả. 29
- FlashCS4 Professional 30
- FlashCS4 Professional Bài 2 Sử dụng công cụ vẽ trong Flash CS4 Mục tiêu bài học: 1. Sử dụng Brush 2. Sử dụng Pen Tool 3. Sử dụng màu sắc một cách hiệu quả 1. Vẽ bằng các hình cơ bản: Để tạo ra các hình vẽ trong Flash ta sẽ sử dụng các tool cơ bản như hình tròn, hình chữ nhật, bút, Kết hợp các hình đơn giản với nhau ta sẽ có được hình phức tạp như ý muốn. Ở đây, ta sẽ vẽ lại một bản vẽ / bức ảnh có trước để đưa vào Flash theo dạng vector (Sẽ sử dụng hình vector này về sau). Tạo 2 layer, với layer scan chứa ảnh và bị khóa nhằm không bị thay đổi khi vẽ trên Sử dụng các công cụ Pen layer drawing tool, Rectangle Tool, và Oval Tool để vẽ các khối hình cơ bản dựa theo hình Đây là bản vẽ gốc ban đầu 31
- FlashCS4 Professional Sử dụng chức năng làm cong của Pen tool để chỉnh cho hình vẽ giống thật Chỉnh sửa một chút ta Tô viền theo các màu ta lại Sau đó ta tô màu nhân vật sẽ có hình như sau có hình trên theo hình gốc và được kết quả như trên 32
- FlashCS4 Professional Xóa các hình tạm đi ta Làm tương tự với chiếc ván Và ta có kết quả cuối cùng sẽ có được kết quả như ta sẽ có hình như trên trên 2. Sử dụng Brush tool: Brush tool là một trong những công cụ vẽ mạnh nhất, đặc biệt khi sử dụng cùng bảng vẽ. Khi vẽ bằng brush tool, mỗi nét của bạn sẽ được chuyển thành 1 khối hình. Sử dụng brush tool như thế nào thực sự tùy thuộc vào khả năng vẽ và phong cách vẽ của bạn. Luôn ghi nhớ khi vẽ rằng mục đích của việc vẽ này nhằm tạo các animation. Chính vì vậy không nên vẽ liền 1 nét mà chia ra nhiều Thông số bạn chỉnh sửa đầu tiên khi nét nhỏ độc lập sẽ tốt hơn khi tạo chuyển sử dụng brush tool là độ mềm của nét động. Sử dụng Selection tool để di chuyển vẽ (smoothing các nét. Có hàng loạt tùy chỉnh cho phét bạn đạt được hình vẽ như mong muốn 33
- FlashCS4 Professional Kết quả cuối cùng là 1 bản vẽ mang đậm phong cách hoạt hình 3. Sử dụng màu hiệu quả: Màu thực sự mạnh và hiệu quả trong việc diễn tả tông của thiết kế hoặc cảm xúc của nhân vật hoạt hình ban đang vẽ. Chúng ta sẽ chỉnh màu sử dụng bảng trộn màu HSB. Trước hết, hãy chuyển chế độ màu từ RGB sang HSB. Chế độ mặc định RGB là chế độ trộn màu dựa theo tỉ lệ 3 màu cơ bản: Red-Green-Blue Chế độ HSB (hay HSV) là chế độ trộn màu dựa theo tỉ lệ của: H (Hue) – Vùng màu S (Saturation) – Độ bão hòa màu B (Bright hay V - Value) – Độ sáng 34
- FlashCS4 Professional Ta có thiết kế gốc: Muốn chuyển màu về dạng Chuyển tòan bộ màu của đen trẳng, hãy chuyển S của thiết kế về cùng một giá trị màu đó về 0, bạn sẽ đạt H cũng sẽ tạo ra một hiệu được kết quả như dưới đây ứng rất đặc biệt và thú vị Thay đổi giá trị S sẽ tạo sự tương phản giữa các màu với nhau. Chỉnh các giá trị HSB sẽ giúp bạn thay đổi tông của thiết kế nhằm giúp thiết kế phù hợp với những gì có sẵn trước đó. 35
- FlashCS4 Professional Bài 3 Sử dụng công cụ vẽ nâng cao trong Flash CS4 Mục tiêu bài học: 4. Sử dụng Gradient 5. Sử dụng ảnh làm texture 6. Biến ảnh bitmap thành ảnh vector 1. Sử dụng Gradient: Các hình ảnh được tạo ra với màu được đổ bóng thường đem lại hiệu quả cao về mặt thẩm mỹ, tạo cảm giác ba chiều. Sau đây chúng ta sẽ học sử dụng cách đổ màu theo chế độ gradient để được được điều trên. Ta tạo 2 layer chứa đầu và mắt của robot Để gây cảm giác đổ bong cho đầu robot, ta sử dụng loại màu Radial Mắt Màu ở phía trái ngoài cùng tương ứng với màu ở tâm của hình. Số lượng loại màu biến đổi là nhiều tùy ý Đầu 36
- FlashCS4 Professional Đổ màu cho đầu robot, ta được kết qua: Để tô màu tạo cảm giác thật cho vật có hình ống, ta dùng loại màu Linear Cách dùng tương tự như vơi Gradient Ta có kết quả như sau: Làm tương tự với phần mắt, ta có: 37
- FlashCS4 Professional Để chỉnh cho bóng phần mắt hợp với phần đầu, Chỉnh một chút và ta có kết quả ta dùng chức năng Gradient Transform Tool như sau: 38
- FlashCS4 Professional 2. Sử dụng ảnh làm texture: Đôi khi việc đổ màu theo cách trên chưa đạt được hiệu ứng cần thiết, đăc biệt với những chi tiết phức tạp như vỏ cây, bãi cỏ thì cách đổ màu dựa vào 1 ảnh bit map lại là 1 cách tốt hơn để giải quyết vấn đề trên Chuẩn bị trước ảnh để làm họa tiết, ảnh Chọn Paint Bucket Tool, sau đó chỉnh chế nên đủ nhỏ để có thể xuất file flash lên độ màu sang Bitmap web Chọn ảnh bitmap tương ứng sau đó tô Chỉnh sửa một chút và ta có kết quả màu như bình thường, ta có kết quả như sau 39
- FlashCS4 Professional 3. Biến ảnh bitmap thành ảnh vector (Trace bitmap): Các bức ảnh chụp thường được thêm vào Flash nhằm tăng tính chân thực. Chúng có thể được dùng nguyên trạng hoặc được vẽ vector như những cách đã được trình bày ở các bài trên. Tuy nhiên, việc vẽ như vậy rất tốn thời gian, và tùy thuộc vào độ chi tiết của bức ảnh mà đôi khi không thể vector hóa bức ảnh theo cách đó. Có một cách khác để biến ảnh bitmap thành ảnh vector nhanh chóng, đó là sử dụng tính năng Trace Bitmap trong Flash. Sử dụng một bức ảnh có độ tương phản đủ Mở hộp thoại Trace Bitmap bằng cách tốt. Có thể chỉnh sửa trước trong photoshop mở Modify > Bitmap > Trace Bitmap hoặc các phần mềm nào đó trước để bức ảnh trông sắc nét nhất. Các thông số càng nhỏ thì ảnh càng chân thực, tuy nhiên dung lượng file sẽ càng lớn Với thong số như trên, ta thu được kết quả Sử dụng công cụ Subselection Tool, như sau ta thấy bức ảnh đã được vector hóa hoàn toàn 40
- FlashCS4 Professional Để giảm kích cỡ của file, ta vào Modify > Kết quả cuối cùng là 1 ảnh vector có Shape > Optimize dung lượng chấp nhận được và đạt được yêu cầu chuyển từ ảnh bitmap sang ảnh vector như mong muốn 41
- FlashCS4 Professional 42
- FlashCS4 Professional Bài 4 Tạo hoạt hình với Flash CS4 Mục tiêu bài học: 1. Sử dụng classic tween 2 Sử dụng motion tween 3 Sử dụng shape tween 4 Sử dụng tính năng bone 5 Tìm hiểu về mask 1 Hoạt hình trong FlashCS4: Flash được sinh ra với mục đích ban đầu để làm hoạt hình vector, nên tạo hoạt hình là một phần quan trọng trong Flash. Để làm hoạt hình trong Flash ngoài việc vẽ các frame liên tiếp khác nhau, ta còn có một cách khác nhanh hơn đó là dùng tween. Tween là khái niệm dùng để chỉ chuyển động được tạo ra một cách tự động, mô tả sự thay đổi giữa 2 frame. Ví dụ: sự thay đổi vị trí, màu sắc, hình dán, của vật thể. Đối tượng được tween là symbol. Nếu ta không tạo symbol mà áp dụng tween ngay lập tức với một hình vẽ, hình đó sẽ tự động được biến thành một symbol. Mỗi layer chỉ được phép chứa một tween, không được phép chứa thêm gì khác, nếu không tween sẽ không hoạt động. Có 2 loại tween trong Flash: - Motion tween: Classic tween và Motion tween cùng thuộc loại này. Từ phiên bản CS3 trở về trước chỉ có Classic tween, không có motion tween. Về bản chất 2 tween này giống nhau, tuy nhiên Motion tween áp dụng một số tính năng mới của Flash CS4 (ví dụ: 3D tween) và cách sử dụng thuận tiện hơn classic tween. 2 loại tween này cùng tạo ra hoạt hình dựa trên sự thay đổi tính chất của 1 symbol giữa 2 frame. - Shape tween: Khác biệt cơ bản giữa shape tween và 2 loại trên nằm ở việc shape tween không làm việc với symbol. Thay vào đó ta định nghĩa shape tween bằng việc thay đổi đối tượng đồ họa tại 2 frame khác nhau, shape tween sẽ tự hiểu và sinh ra chuyển động thay đổi hình dáng tương ứng. Để giúp việc này đúng như ta mong muốn, Flash cũng cung cấp một số công cụ hỗ trợ sẽ được bàn tới trong phần tiếp theo của bài học. Flash CS4 cung cấp một tính năng rất mạnh cho người làm hoạt hình, đó là bone. Tính năng bone sẽ giúp ta định nghĩa khung xương của đối tượng đồ họa, qua đó ta có thể tạo các chuyển động phức tạp như động vật di chuyển, khớp máy, Sau đây ta sẽ đi chi tiết vào từng tính năng hỗ trợ chuyển động trong Flash CS4. Hãy chuyển chế độ làm việc sang “Animator” để bắt đầu tạo hoạt hình với Flash. 43
- FlashCS4 Professional 2 Sử dụng classic tween: Vẽ quả bóng hình rổ như hình bên dưới Chuyển quả bóng sang symbol Đăt tên đối tượng là Ball Click chuột phải vào frame thứ 15, chọn “Insert Keyframe”. Thay đổi vị trí quả bóng. Lại click chuột phải vào giữa 2 frame 1 và 15, chọn “Create Classic Tween” 44
- FlashCS4 Professional Ấn Enter để xem kết quả, hoặc chọn Ta cũng có thể xoay quả bóng, thay đổi các Control > Test Movie. tính chất khác của quả bóng trong panel Properties Hoặc click chuột trái vào 1 frame bất kì giữa Trục ngang là số frame, trục dọc là số % mà frame đầu và cuối, nhìn sang panel Tween hoàn thành. Chỉnh đường thằng thành Properties. Có một số tính chất đáng chú ý đường cong theo ý muốn ta sẽ có một tween sau: thật hơn theo ý muốn. Ease: Rotate: chỉnh cho vật thể quay theo ý muốn. Sau đây, ta sẽ cho quả bóng đi theo 1 đường bất kì. Click chuột phải vào layer hiện tại, chọn “Add Classic Motion Guide” Một layer mới được sinh ra, trong layer này Chỉnh đường thẳng thành đường cong như ta vẽ 1 đường thẳng. mong muốn. Di chuyển đường thẳng / quả bóng (trong 2 frame đầu và cuối) sao cho đường thẳng đi Lại Test Movie lần nữa để xem kết quả. qua điểm tròn trong quả bóng. Xoay quả bóng tại frame đầu và frame cuối một chút, ta có chuyển động thuyết phục hơn rất nhiều. Frame 1 Frame 15 45
- FlashCS4 Professional 3 Sử dụng Motion Tween: Flash CS4 giới thiệu một chức năng mới là Motion Tween . Khái niệm Motion Tween từ các phiên bản trước trở thành Classic Tween. Một trong những tính năng mới của Motion Tween là có thể tạo đường di chuyển mà không cần tạo guide layer như cách truyền thống. Thêm nữa, Motion Tween cho phép tạo hoạt họa với chức năng 3 chiều mới trong Flash CS4. Để hiểu thêm về Motion Tween, hãy thử nghiệm với nó, hẳn bạn sẽ không thất vọng với những nỗ lực của Adobe khi cải tiến một trong những tính năng lâu đời và đặc trưng nhất của Flash trong các phiên bản trước của hãng Macromedia. Dưới đây là demo tạo một chuyển động tương tự như với Classic Tween. Tạo một symbol mới, đặt tên là ufo Tạo 2 key frame, và vẽ trong 2 frame như sau Ta đã có 1 ufo tự quay xung quanh trục Kéo ufo từ panel Library vào stage, tạo 1 frame mới ở frame thứ 60 Click chuột phải vào 1 frame bất kì nằm giữa frame đầu và cuối, chọn “Create Motion Tween” 46
- FlashCS4 Professional Chọn frame 60, di chuyển vị trí vật thể. Chọn 1 sô vị trí bất kì giữa 2 frame đầu và cuối, di chuyển vật thể theo cách bạn thích. Chỉnh đường màu xanh (chính là đường di chuyển của vật thể sau này) theo cách bạn thích. 47
- FlashCS4 Professional Quay vật thể và thay đổi kích thước một chút, chọn Control > Test Movie, ta có kết quả khá giống thực. Một chiếc đĩa bay đang tiến từ xa tới gần. Tưong tự như Classic Tween, ta cũng chỉnh sửa panel Properties của Motion Tween. Đĩa bay từ xa tới nên lúc đầu có vẻ đi chậm, lúc sau thì đi nhanh hơn. Chính vì vậy nên chỉnh trong Ease có giá trị Motion Editor để panel này hiện lên) để có được chuyển động mượt hơn. Để có hiệu ứng tốt hơn, ta tạo bầu trời đầy sao phía sau đĩa bay. Tạo một symbol, đặt tên là star Click vào 1 vị trí bất kì trên stage (không click vào 1 đối tượng nào), chọn panel Properties, chỉnh màu của stage về đen. 48
- FlashCS4 Professional Chọn brush, vẽ một chấm tròn màu trắng. Tạo một symbol mới tên là star_blinking. Kéo symbol star từ panel Library vào stage. Tạo 2 keyframe. Trong keyframe đầu tiên, chọn vật thể, mở panel Properties, nhìn xuống mục Filter. Thêm filter Blur. Tạo keyframe thứ 2 cũng làm tương tự, nhưng giá trị trong BlurX và BlurY được chỉnh tùy ý, với điều kiện giá trị phải khác với frame đầu tiên. Quay trở lại với scene. Tạo 1 layer mới, đặt tên là bg nằm dưới layer chứa ufo. Kéo một vài symbol star_blinking từ panel Library vào. Đặt ở các vị trí bất kì. Chỉnh kích thước cho phù hợp. Ta đã có môt hoạt cảnh đĩa bay bay trong trời đêm nhấp nháy sao :D. 49
- FlashCS4 Professional 4 Sử dụng Shape Tween: Như đã nói ở trên, shape tween tạo ra chuyển động biến hình giữa 2 hình trong 2 frame khác nhau. Dưới đây là ví dụ chỉ ra cách thức tạo 1 shape tween. Tạo 1 file Flash. Tạo 1 key frame tại frame số 20 Trong frame đầu tiên, vẽ 1 đường cong Chỉnh hình cong cho dài ra 1 chút Ở giữa 2 frame đó, ta click chuột phải vào 1 Ta có kết quả frame và chọn “Create Shape Tween” Như vậy là ta đã có 1 shape tween đơn giản. Để tween chính xác hơn, ta có thể thêm Shape Tại frame cuối, ta chỉnh cho điểm a ở frame hint bằng cách vào Modify > Shape > Add đầu trùng với vị trí điểm a ơ frame cuối trên Shape Hint. hình mà ta mong muốn 50
- FlashCS4 Professional Test movie lần nữa, bây giờ ta đã có shape tween chính xác hơn. Càng sử dụng nhiêu shape hint thì chuyển động càng chính xác 5 Sử dụng tính năng bone: Ta trong phần này của bài tập, ta sẽ tạo một người chuyển động với bone tool. Bạn sẽ thấy nó thực sự đơn giản và hiệu quả như thế nào. Tạo một symbol tên là “chân” Chọn bone tool Chọn cả chân Trong frame đầu tiên, vẽ một cái chân như hình dưới đây Phần đùi là đường thẳng có độ dày là 20, phần ống đồng có độ dày là 16, phần bàn chân có độ dài là 14. Ấn vào phần trên cùng bắp đùi, giữ chuột, Lại ấn chuột từ phần đầu ống đồng tới phần kéo đến đầu ống đồng rồi thả ra. bàn chân rồi thả ra. Lại tiếp túc ấn chuột phần đầu bàn chân, tới Toàn bộ đối tượng đồ họa của layer ban đầu cuối thì thả ra. đã được copy vào layer Armature mới được sinh ra. Bạn hoàn toàn có thể xóa bỏ layer ban đầu bây giờ đã rỗng không. 51
- FlashCS4 Professional Tại frame số 5,ta “Insert Pose” và thay đổi Làm tương tự với frame số 10, nhưng lần hình dạng chân một chút, cho chân nhấc lên này cho chân giống frame đầu tiên 1 chút (Chọn Selection Tool rồi chỉnh như hình dưới đây) Bây giờ ta đã có chuyên động của chân sử dụng bone. Kết hợp với Motion Tween ta sẽ có hình người chuyển động như sau. Kết hợp mềm dẻo giữa bone và các loại motion khác, bạn sẽ có những đoạn hoạt hình vô cùng ấn tượng mà việc tạo chúng lại rất đơn giản không hề mất nhiều công sức 52
- FlashCS4 Professional 6 Sử dụng mask trong Flash: Ta sẽ sư dụng mask để tạo một lá cờ bay trong gió. Tạo một symbol tên là “flag” Làm cong nó Vẽ một hình chữ nhật như hình dưới đây Copy, xoay và dán nó bên cạnh hình cũ, ta được Làm vài lần ta sẽ có Tạo 1 layer mới đặt trên layer chứa hình trên, trong layer này vẽ 1 hình chữ nhật. Tạo motion tween cho hình dải màu chuyển động từ đầu tới cuối trong 15 frame, chú ý mép cuối hình chữ nhật vẫn nằm trong dải màu. Layer chứa hình chữ nhật cũng có 15 frame như layer chứa dải màu. 53
- FlashCS4 Professional Click chuột phải vào layer này, chọn Mask Lưu ý, để mask hoạt động, các layer mask và bị mask đều phải được khóa lại như hình trên. Lúc này ta sẽ được lá cờ bay trong gió. Đưa vài lá cờ từ trong panel Library ra ngoài stage, chọn Control > Test movie; ta sẽ có hình các lá cờ bay băng mask. Bạn có thể sửa chuyển động của lá cờ một chút cho hình động có vẻ thật hơn. 54
- FlashCS4 Professional Kết thúc bài học này các bạn đã biết cách tạo hoạt hình trong Flash CS4. Tuy nhiên những điều đề cập bên trên chỉ là những điều cơ bản, còn rất nhiều điều thú vị về hoạt hình trong Flash mà bạn có thể khám phá. Hãy tiếp tục khám phá và thử nghiệm, bạn sẽ thu được rất nhiều điều thú vị mà bạn không ngờ tới. 55
- FlashCS4 Professional Bài 5 Sử dụng âm thanh trong Flash CS4 Mục tiêu bài học: 1. Thêm âm thanh vào file Flash 2. Điều chỉnh âm thanh 1. Âm thanh trong FlashCS4: Flash cung cấp một môi trường làm việc vừa đủ với âm thanh: cho phép bạn điều chỉnh việc bắt đầu, kết húc và một số hiệu ứng cơ bản. Đừng mong chờ Flash có thể giúp bạn làm được mọi thứ, hãy để giành những chỉnh sửa âm thanh phức tạp cho các phần mềm chuyên dụng. Chọn frame đầu trong file Flash, chọn File > Import to Stage và sau đó chọn file WAV hoặc file AIF, MP3 của bạn (có khá nhiều loại flie Flash có thể import được, ngoài 3 loại kể trên). File âm thanh sẽ bắt đầu từ frame 1, do đó bạn cần chèn thêm đủ frame để đáp ứng đủ độ dài của file âm thanh. Mặc định, file âm thanh sẽ được đưa về chế độ Event. Sử dụng menu Sync để thay đổi thuộc tính của file âm thanh. Event: Chế độ này được sử dụng để chạy file âm thanh tại một thời điểm bất kì và độc lập hoàn toàn với các âm thanh khác. Một âm thanh được gán chế độ Event sẽ chạy cho hết độ dài của nó kể cả khi đã hết frame (có thể xảy ra trường hợp 2 bản của cùng 1 file âm thanh dạng Event bị chạy cùng 1 lúc). Một file âm thanh kiểu Event phải được download hết về máy trước khi được chạy. Start: Tương tự như Event, ngoại trừ việc nếu âm thanh đó đang chạy sẽ không có thêm instance nào khác của nó được chạy. Stop: Âm thanh có thuộc tính này không được tự động chạy. Stream: Thuộc tính này được dùng để đồng bộ một âm thanh với timeline và các chuyển động. Âm thanh kiểu stream sẽ bắt đầu và kết thúc tùy ý tùy thuộc điều khiển. Ấn Edit để chỉnh sửa âm thanh 56
- FlashCS4 Professional Bạn sẽ nhìn thấy dạng sóng của âm thanh và một vài tính năng điều khiển cơ bản tại cửa sổ này. Ở phía dưới cùng của cửa sổ này bạn sẽ thấy nút play, stop, công cụ để phóng to dạng sóng của âm thanh, lựa chọn để chuyển giữa đơn vị thời gian là frame và giây. Menu Effect cho bạn một số lựa chọn để thêm hiệu ứng vào âm thanh đang có Left Channel/Right Channel : Âm thanh được chạy từ phía trái hoặc phải. Fade Left to Right/Fade Right to Left : Đảo kênh âm thanh. Fade In/Fade Out: Âm lượng tăng/giảm dần dần khi âm thanh được chạy. Custom: Cho phép bạn tùy chỉnh âm lượng tại các thơi điểm tùy ý. Bạn có thể có tối đa 8 điểm xử lý bằng cách click vào bất kì vị trí nào trong cửa sổ điều chỉnh âm thanh. Mỗi điểm có thể được kéo thả để điều chỉnh âm lượng tại vị trí đó trong file âm thanh. Vị trí điểm đó càng cao thì âm lượng càng lớn và ngược lại. Để loại bỏ 1 điểm tùy chỉnh kéo nó ra khỏi cửa sổ chỉnh âm thanh. Đường thẳng chỉ ra âm lượng của âm thanh khi nó được chạy, Tương tác với các đường thẳng đó tương tự với các điểm như đã nói ở trên. Để thay đổi điểm bắt đầu và kết thúc của một âm thanh, điểu chỉnh điểm điều khiển Time In và Time Out trong cửa sổ Edit Envelope. 57
- FlashCS4 Professional Chương 3: GIỚI THIỆU VỀ ACTION SCRIPT 3.0 Giới thiệu: Action Script là ngôn ngữ kịch bản giành cho Flash, nhưng với những đặc điểm nổi trội và sự tiến bố không ngừng như việc hướng đối tượng hoàn toàn, bộ thư viện mạnh mẽ, bộ dịch nhanh, máy ảo hiệu quả, ; Action Script đang trở nên mạnh mẽ và được các lập trình viên Flash yêu thích. Chương này sẽ giúp các bạn nắm được Action Script 3.0 trên cơ sở bạn đã có kinh nghiệm lập trình trước đây thong qua các nội dung sau: 1. Cú pháp của Action Script 3.0. 2. Lập trình hướng đối tượng. 3. Cơ chế quản lý sự kiện trong Flash. 58
- FlashCS4 Professional Bài 1: Làm quen với Actionscript 3.0 Mục tiêu bài học: 1. Lịch sử phát triển Actionscript. 2. Cú pháp 1. Lịch sử phát triển của Action Script: Từ khi ra đời, Macromedia Flash đã mở ra một cuộc cách mạng về xử lý hình ảnh động. Các version sau này càng bổ sung nhiều hiệu ứng đẹp và hấp dẫn hơn, tạo những ấn tượng khó quên cho những người tiếp xúc với nó. Bạn có thể hỏi, điều gì ẩn giấu sau những hiệu ứng tuyệt đẹp đó? Tôi có thể trả lời ngay cho bạn, đó chính là Action Script mà phiên bản mới nhất hiện nay là 3.0 (AS3). Nếu làm việc với flash, có thể thấy, bạn không nhất thiết phải sử dụng tới Action Script để có được các hiệu ứng hoạt hình. Nhưng để tạo ra được những chương trình có tương tác với người dùng, bạn bắt buộc phải sử dụng tới AS. Action Script là một ngôn ngữ được viết dựa theo chuẩn ECMAScript (cùng chuẩn tạo ra Javascript/JScript). Action Script được tạo ra cùng với Flash ngay từ những phiên bản đầu tiên. Nhưng trong ba phiên bản đầu, nó giới hạn khả năng của lập trình viên vì chỉ có những lệnh cơ bản để di chuyển giữa các frame, như “play”, ”stop”, “getURL” và “gotoAndPlay”. Phiên bản Flash 4 ra đời năm 1996, Action Script mới chính thức trở thành một ngôn ngữ với việc hỗ trợ khai báo biến, biểu thức, toán hạng, lệnh rẽ nhánh và vòng lặp; và cái tên Action Script được chính thức sử dụng. Năm 2000, cùng với sự ra đời của Macromedia Flash 5, AS1.0 đã hỗ trợ đầy đủ các đặc tính của lập trình hướng cấp trúc và một phần lập trình hướng đối tượng. Flash 6 bổ xung mô hình xử lý sự kiện, hỗ trợ switch. Đây cũng là phiên bản đầu tiên hỗ trợ phương thức AMF và RTMP cho phép truyền âm thanh và video trực tuyến (streaming). Năm 2006, Flash 7 hay còn gọi là Flash MX được giới thiệu, và không chỉ mới về những gì được hỗ trợ, AS2 cũng được ra đời với những cải tiến quan trọng với việc hoàn chỉnh cây kế thừa một cách chặt chẽ, hỗ trợ CSS cho việc hiển thị các ký tự. Flash 8 tiếp tục phát triển Action Script 1 và Action Script 2 với việc thêm các lớp mới vào thư việc API để điều khiển dữ liệu bitmap tại thời gian thực, upload file, các hiệu ứng làm mờ, đổ bóng. Năm 2005, Sau khi bị Adobe mua lại, và với sự ra đời của flex 2, action script cũng phát triển thêm một bước dài, đó là sự ra đời của Action Script 3, một sự lột xác hoàn toàn, cái nhân AS2 dường như cũng bị lu mờ trước một ngôn ngữ hướng đối tượng thuần nhất, có thể đứng độc lập mà không cần tới design như trước đây. Máy ảo của Flash 9 cũng đã được nâng cấp lên thành phiên bản mới AVM2 (Action Script Virtual Machine 2). AS3 hỗ trợ socket, chễ độ xem toàn màn hình, biểu thức chính quy, một cách mới là việc với XML hiệu quả hơn (E4X XML) 59
- FlashCS4 Professional Flash 10 (còn gọi là Astro) đã tiến dần vào lĩnh vưc 3 chiều, Action Script của phiên bản này hỗ trợ các hàm 3 chiều cơ bản như xoay trục X, Y, Z; hỗ trợ các hàm vẽ 3 chiều; một số tác vụ hình ảnh được chuyển bớt sang GPU khiến thời gian xử lý ảnh được giảm đáng kết, đặc biệt với video định dạng H.264. Các thư viện âm thanh cũng được cải tiến tốt hơn trước một cách đáng kể. Không dừng lại việc ứng dụng Action Script trong việc tạo các file Flash chạy trên môi trường Internet, cùng với sự phát triển của công nghệ AIR (một máy ảo tương tự như .NET fhay Java), Adobe đã thâm nhập vào thị trường ứng dụng của máy để bàn, tạo ra một cách tiếp cận mới trong việc xây dựng các ứng dụng truyền thống với giao diện đặc sắc hơn, ứng dụng để bàn không chỉ là ứng dụng độc lập chỉ chạy tại một máy mà còn hướng đến việc tương tác với máy chủ để lấy thong tin qua mạng Internet. 2. Các khái niệm cơ bản của Action Script: 2. 1 Khởi tạo và lưu trữ biến Lưu trữ giá trị trong ActionScript 3.0 có thể thực hiện bởi một câu lệnh đơn giản. Tuy nhiên bạn phải chỉ ra biến lần đầu tiên bạn sử dụng. Bạn có thể làm bằng cách đặt từ khóa “var” trước lần sử dụng biến đầu tiên var a = 3; Hoặc bạn chỉ ra biến trước rồi sử dụng sau var a; Khi bạn tạo biến với cách này, nó là kiểu đối tượng rất linh hoạt. Có nghĩa là nó có thể giữ bất kỳ giá trị biến nào : một số, 1 xâu như Hello Có những kiểu biến như kiểu : int (số nguyên), number (số thập phân) string (ký tự) Boolean ( kiểu logic đúng hoặc sai) 2. 2 Câu lệnh điều kiện Câu lệnh if trong ActionScript 3.0 cũng giống như trong nhiều ngôn ngữ lập trình khác if (myValue==1) { Dosomething(); } Dấu == để so sánh có bằng hay không. Bạn có thể dùng các ký hiệu so sánh khác như >, =, <= 60
- FlashCS4 Professional Bạn có thể dùng else và else if để mở rộng cấu trúc if if (myValue == 1) { doSomething(); } else if (myValue == 2) { doSomethingElse(); } else { doNothing(); } Bạn có thể có các điều kiện phức tạp hơn nhờ sử dụng toán tử so sánh && (và)hay || (hoặc) if ((myValue == 1) && (myString == “This”)) { doSomething(); } Độ ưu tiên các toán tử giống với các ngôn ngữ lập trình khác 2.3 Vòng lặp Vòng lặp được thực hiện với khai báo for hoặc while. Lệnhfor gồm 3 phần. Phần khai báo đầu, điều kiện, sự thay đổi khai báo. Như ví dụ dưới đây ta sẽ đặt biến i từ 0, lặp đến khi nhỏ hơn 10, và tăng giá trị i mỗi trong suốt vòng lặp for(var i:int=0;i<10;i++) { doSomething(); 61
- FlashCS4 Professional } Bạn có thể dùng lệnh break để thoát khỏi vòng lặp bất cứ lúc nào Vòng lặp While đơn giản là vòng lặp tiếp tục mãi chừng nào điều kiện đầu còn được gặp var i:int = 0; while (i < 10) { i++; } Sự biến đổi của vòng lặp while là vòng lặp do. Về bản chất là giống nhau ngoại trừ câu lệnh điều kiện sau vòng lặp, đảm bảo nó được thực hiện ít nhất một lần var i:int = 0; do { i++; } while (i <10); 2.4 Function (Hàm) Muốn tạo hàm trong ActionScript 3.0, bạn cần chỉ ra hàm, những tham số của nó và hàm trả về cái gì. Sau đó định nghĩa hàm bằng những dòng lệnh bên trong nó Với các hàm trong một class, bạn phải xác định nó là hàm public hay private hay protected hay internal. Hàm private không thể được truy cập bên ngoài class đó. Hàm protected chỉ được truy cập ở các class là con của class. Hàm internal chỉ được phép truy cập từ các hàm trong cùng một package Sau là một hàm cơ bản trong một class. private function func(numb : Number, txt :String): Boolean { if (numb == 7) return true; if (txt.length < 3) return true; 62
- FlashCS4 Professional return false; } Mọi ví dụ đều sẽ trả về giá trị true nếu numb đúng bằng 7 và độ dài txt nhỏ hơn 3. Còn các ví dụ khác hàm trả về false 63
- FlashCS4 Professional Bài 2 : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Mục tiêu: Nắ m được cá c khá i niêṃ cơ bả n : Lớ p (Class), Đối tượng (Object), Thuôc̣ tính (attribute), phương thứ c (method) Các đặc điểm quan trọng trong lập trình hướng đối tượng như : tính bao gói, tính kế thừ a, tính đa hình . 2.1. Giới thiệu Hướng đối tượng (object orientation) cung cấp một kiểu mới để xây dựng phần mềm. Trong kiểu mới này, các đối tượng (object) và các lớp (class) là những khối xây dựng trong khi các phương thức (method), thông điệp (message), và sự thừa kế (inheritance) cung cấp các cơ chế chủ yếu. Lập trình hướng đối tượng (OOP- Object-Oriented Programming) là một cách tư duy mới, tiếp cận hướng đối tượng để giải quyết vấn đề bằng máy tính. Thuật ngữ OOP ngày càng trở nên thông dụng trong lĩnh vực công nghệ thông tin. Khái niệm 1 Lập trình hướng đối tượng (OOP) là một phương pháp thiết kế và phát triển Phần mềm dựa trên kiến trúc lớp và đối tượng. Nếu bạn chưa bao giờ sử dụng một ngôn ngữ OOP thì trước tiên bạn nên nắm vững các khái niệm của OOP hơn là viết các chương trình. Bạn cần hiểu được đối tượng (object) là gì, lớp (class) là gì, chúng có quan hệ với nhau như thế nào, và làm thế nào để các đối tượng trao đổi thông điệp (message) với nhau. OOP là tập hợp các kỹ thuật quan trọng mà có thể dùng để làm cho việc triển khai chương trình hiệu quả hơn. Quá trình tiến hóa của OOP như sau: Lập trình tuyến tính Lập trình có cấu trúc 64
- FlashCS4 Professional Sự trừu tượng hóa dữ liệu Lập trình hướng đối tượng 2.2 Đối tượng (object) Các đối tượng là chìa khóa để hiểu được kỹ thuật hướng đối tượng. Bạn có thể nhìn xung quanh và thấy được nhiều đối tượng trong thế giới thực như: con chó, cái bàn, quyển vở, cây viết, tivi, xe hơi Trong một hệ thống hướng đối tượng, mọi thứ đều là đối tượng. Một bảng tính, một ô trong bảng tính, một biểu đồ, một bảng báo cáo, một con số hay một số điện thoại, một tập tin, một thư mục, một máy in, một câu hoặc một từ, thậm chí một ký tự, tất cả chúng là những ví dụ của một đối tượng. Rõ ràng chúng ta viết một chương trình hướng đối tượng cũng có nghĩa là chúng ta đang xây dựng một mô hình của một vài bộ phận trong thế giới thực. Tuy nhiên các đối tượng này có thể được biểu diễn hay mô hình trên máy tính. Một đối tượng thế giới thực là một thực thể cụ thể mà thông thường bạn có thể sờ, nhìn thấy hay cảm nhận được. Tất cả các đối tượng trong thế giới thực đều có trạng thái (state) và hành động (behaviour). Ví dụ: Trạng thái Hành động Tên Sủa Màu Vẫy tai Con chó Giống Chạy Vui sướng Ăn Bánh răng Tăng tốc Bàn đạp Giảm tốc Dây xích Chuyển Xe đạp Bánh xe bánh răng Các đối tượng phần mềm (software object) có thể được dùng để biểu diễn các đối tượng thế giới thực. Chúng được mô hình sau khi các đối tượng thế giới thực có cả trạng thái và hành động. Giống như các đối tượng thế giới thực, các đối tượng phần mềm cũng có thể có trạng thái và hành động. Một đối tượng phần mềm có biến (variable) hay trạng thái (state) mà thường được gọi là thuộc tính (attribute; property) để duy trì trạng thái của nó và phương thức (method) để thực hiện các hành động của nó. Thuộc tính là một hạng mục dữ liệu được đặt tên bởi một định danh (identifier) trong khi phương thức là một 65
- FlashCS4 Professional chức năng được kết hợp với đối tượng chứa nó. OOP thường sử dụng hai thuật ngữ mà sau này Java cũng sử dụng là thuộc tính (attribute) và phương thức (method) để đặc tả tương ứng cho trạng thái (state) hay biến (variable) và hành động (behavior). Tuy nhiên C++ lại sử dụng hai thuật ngữ dữ liệu thành viên (member data) và hàm thành viên (member function) thay cho các thuật ngữ này. Xét một cách đặc biệt, chỉ một đối tượng riêng rẽ thì chính nó không hữu dụng. Một chương trình hướng đối tượng thường gồm có hai hay nhiều hơn các đối tượng phần mềm tương tác lẫn nhau như là sự tương tác của các đối tượng trong trong thế giới thực. Khái niệm 2 Đối tượng (Object) là một thực thể mềm bao bọc các thuộc tính và các phương thức liên quan Kể từ đây, trong giáo trình này chúng ta sử dụng thuật ngữ đối tượng (object) để chỉ một đối tượng phần mềm. Hình 3.1 là một minh họa của một đối tượng phần mềm: Hình 3.1 Một đối tượng phần mềm Mọi thứ mà đối tượng phần mềm biết (trạng thái) và có thể làm (hành động) được thể hiện qua các thuộc tính và các phương thức. Một đối tượng phần mềm mô phỏng cho chiếc xe đạp sẽ có các thuộc tính để xác định các trạng thái của chiếc xe đạp như: tốc độ của nó là 10 km trên giờ, nhịp bàn đạp là 90 vòng trên phút, và bánh răng hiện tại là bánh răng thứ 5. Các thuộc tính này thông thường được xem như thuộc tính thể hiện (instance attribute) bởi vì chúng chứa đựng các trạng thái cho một đối tượng xe đạp cụ thể. Trong kỹ thuật hướng đối tượng thì một đối tượng cụ thể được gọi là một thể hiện (instance). Khái niệm 3 66
- FlashCS4 Professional Một đối tượng cụ thể gọi là một thể hiên ( instance) Hình 3.2 minh họa một xe đạp được mô hình như một đối tượng phần mềm: Hình 3.2 Đối tượng phần mềm xe đạp Đối tượng xe đạp phần mềm cũng có các phương thức để thắng lại, tăng nhịp đạp hay là chuyển đổi bánh răng. Nó không có phương thức để thay đổi tốc độ vì tốc độ của xe đạp có thể tình ra từ hai yếu tố số vòng quay và bánh răng hiện tại. Những phương thức này thông thường được biết như là các phương thước thể hiện (instance method) bởi vì chúng tác động hay thay đổi trạng thái của một đối tượng cụ thể. 2.3 Lớp (Class) Trong thế giới thực thông thường có nhiều loại đối tượng cùng loại. Chẳng hạn chiếc xe đạp của bạn chỉ là một trong hàng tỉ chiếc xe đạp trên thế giới. Tương tự, trong một chương trình hướng đối tượng có thể có nhiều đối tượng cùng loại và chia sẻ những đặc điểm chung. Sử dụng thuật ngữ hướng đối tượng, chúng ta có thể nói rằng chiếc xe đạp của bạn là một thể hiện của lớp xe đạp. Các xe đạp có một vài trạng thái chung (bánh răng hiện tại, số vòng quay hiện tại, hai bánh xe) và các hành động (chuyển bánh răng, giảm tốc). Tuy nhiên, trạng thái của mỗi xe đạp là độc lập và có thể khác với các trạng thái của các xe đạp khác. Trước khi tạo ra các xe đạp, các nhà sản xuất thường thiết lập một bảng thiết kế (blueprint) mô tả các đặc điểm và các yếu tố cơ bản của xe đạp. Sau đó hàng loạt xe đạp sẽ được tạo ra từ bản thiết kế này. Không hiệu quả nếu như tạo ra một bản thiết kế mới cho mỗi xe đạp được sản xuất. Trong phần mềm hướng đối tượng cũng có thể có nhiều đối tượng cùng loại chia sẻ những đặc điểm chung như là: các hình chữ nhật, các mẫu tin nhân viên, các đoạn phim, Giống như là các nhà sản xuất xe đạp, bạn có thể tạo ra một bảng thiết kế cho các đối tượng này. Một bảng thiết kế phần mềm cho các đối tượng được gọi là lớp (class). 67
- FlashCS4 Professional Khái niệm 4 Lớp (class) là một thiết kế (blueprint) hay một mẫu ban đầu (prototype) định nghĩa các thuộc tính và các phương thức chung cho tất cả các đối tượng của cùng một loại nào đó Một đối tượng là một thể hiện cụ thể của một lớp. Trở lại ví dụ về xe đạp chúng ta thấy rằng một lớp Xedap là một bảng thiết kế cho hàng loạt các đối tượng xe đạp được tạo ra. Mỗi đối tượng xe đạp là một thể hiện của lớp Xedap và trạng thái của nó có thể khác với các đối tượng xe đạp khác. Ví dụ một xe đạp hiện tại có thể là ở bánh răng thứ 5 trong khi một chiếc khác có thể là ở bánh răng thứ 3. Lớp Xedap sẽ khai báo các thuộc tính thể hiện cần thiết để chứa đựng bánh răng hiện tại, số vòng quay hiện tại, cho mỗi đối tượng xe đạp. Lớp Xedap cũng khai báo và cung cấp những thi công cho các phương thức thể hiện để cho phép người đi xe đạp chuyển đổi bánh răng, phanh lại, chuyển đổi số vòng quay, như Hình 3.3. Hình 3.3 Khai báo cho lớp Xedap Sau khi bạn đã tạo ra lớp xe đạp, bạn có thể tạo ra bất kỳ đối tượng xe đạp nào từ lớp này. Khi bạn tạo ra một thể hiện của lớp, hệ thống cấp phát đủ bộ nhớ cho đối tượng và tất cả các thuộc tính thể hiện của nó. Mỗi thể hiện sẽ có vùng nhớ riêng cho các thuộc tính thể hiện của nó. Hình 3.4 minh họa hai đối tượng xe đạp khác nhau được tạo ra từ cùng lớp Xedap: Hình 3.4 Hai đối tượng của lớp Xedap 68
- FlashCS4 Professional Ngoài các thuộc tính thể hiện, các lớp có thể định nghĩa các thuộc tính lớp (class attribute). Một thuộc tính lớp chứa đựng các thông tin mà được chia sẻ bởi tất cả các thể hiện của lớp. Ví dụ, tất cả xe đạp có cùng số lượng bánh răng. Trong trường hợp này, định nghĩa một thuộc tính thể hiện để giữ số lượng bánh răng là không hiệu quả bởi vì tất cả các vùng nhớ của các thuộc tính thể hiện này đều giữ cùng một giá trị. Trong những trường hợp như thế bạn có thể định nghĩa một thuộc tính lớp để chứa đựng số lượng bánh răng của xe đạp.Tất cả các thể hiện của lớp Xedap sẽ chia thuộc tính này. Một lớp cũng có thể khai báo các phương thức lớp (class methods). Bạn có thể triệu gọi một phương thức lớp trực tiếp từ lớp nhưng ngược lại bạn phải triệu gọi các phương thức thể hiện từ một thể hiện cụ thể nào đó. Hình 3.5 Lớp và thể hiện của lớp Khái niệm 5 Thuộc tính lớp (class attribute) là một hạng mục dữ liệu liên kết với một lớp cụ thể mà không liên kết với các thể hiện của lớp. Nó được định nghĩa bên trong định nghĩa lớp và được chia sẻ bởi tất cả các thể hiện của lớp. Phương thức lớp (class method) là một phương thức được triệu gọi mà không tham khảo tới bất kỳ một đối tượng nào. Tất cả các phương thức lớp ảnh hưởng đến toàn bộ lớp chứ không ảnh hưởng đến một lớp riêng rẽ nào. 69
- FlashCS4 Professional 2.4 Thuộc tính (Attribute) Các thuộc tính trình bày trạng thái của đối tượng. Các thuộc tính nắm giữ các giá trị dữ liệu trong một đối tượng, chúng định nghĩa một đối tượng đặc thù. Khái niệm 6 Thuộc tính (attribute) là dữ liệu trình bày các đặc điểm về một đối tượng. Một thuộc tính có thể được gán một giá trị chỉ sau khi một đối tượng dựa trên lớp ấy được tạo ra. Một khi các thuộc tính được gán giá trị chúng mô tả một đối tượng. Mọi đối tượng của một lớp phải có cùng các thuộc tính nhưng giá trị của các thuộc tính thì có thể khác nhau. Một thuộc tính của đối tượng có thể nhận các giá trị khác nhau tại những thời điểm khác nhau. 2.5 Phương thức (Method) Các phương thức thực thi các hoạt động của đối tượng. Các phương thức là nhân tố làm thay đổi các thuộc tính của đối tượng. Khái niệm 7 Phương thức (method) có liên quan tới những thứ mà đối tượng có thể làm. Một phương thức đáp ứng một chức năng tác động lên dữ liệu của đối tượng (thuộc tính). Các phương thức xác định cách thức hoạt động của một đối tượng và được thực thi khi đối tượng cụ thể được tạo ra.Ví dụ, các hoạt động chung của một đối tượng thuộc lớp Chó là sủa, vẫy tai, chạy, và ăn. Tuy nhiên, chỉ khi một đối tượng cụ thể thuộc lớp Chó được tạo ra thì các phương thức sủa, vẫy tai, chạy, và ăn mới được thực thi. Các phương thức mang lại một cách nhìn khác về đối tượng. Khi bạn nhìn vào đối tượng Cửa ra vào bên trong môi trường của bạn (môi trường thế giới thực), một cách đơn giản bạn có thể thấy nó là một đối tượng bất động không có khả năng suy nghỉ. Trong tiếp cận hướng đối tượng cho phát triển hệ thống, Cửa ra vào có thể được liên kết tới phương thức được giả sử là có thể được thực hiện. Ví dụ, Cửa ra vào có thể mở, nó có thể đóng, nó có thể khóa, hoặc nó có thể mở khóa. Tất cả các phương thức này gắn kết với đối tượng Cửa ra vào và được thực hiện bởi Cửa ra vào chứ không phải một đối tượng nào khác. Ví dụ package { import flash.display.Sprite; public class Xedap extends Sprite { 70
- FlashCS4 Professional public function Xedap() { var maxspeed; var xich; } public function start() : void { } public function end() : void { } } } Lớ p Xedap có thuôc̣ tính là cá c thong so maxspeed, xich và phương thứ c start, end 2.6 Thông điệp (Message) Một chương trình hay ứng dụng lớn thường chứa nhiều đối tượng khác nhau. Các đối tượng phần mềm tương tác và giao tiếp với nhau bằng cách gởi các thông điệp (message). Khi đối tượng A muốn đối tượng B thực hiện các phương thức của đối tượng B thì đối tượng A gởi một thông điệp tới đối tượng B. Ví dụ đối tượng người đi xe đạp muốn đối tượng xe đạp thực hiện phương thức chuyển đổi bánh răng của nó thì đối tượng người đi xe đạp cần phải gởi một thông điệp tới đối tượng xe đạp. Đôi khi đối tượng nhận cần thông tin nhiều hơn để biết chính xác thực hiện công việc gì. Ví dụ khi bạn chuyển bánh răng trên chiếc xe đạp của bạn thì bạn phải chỉ rõ bánh răng nào mà bạn muốn chuyển. Các thông tin này được truyền kèm theo thông điệp và được gọi là các tham số (parameter). Một thông điệp gồm có: Đối tượng nhận thông điệp Tên của phương thức thực hiện Các tham số mà phương thức cần 71
- FlashCS4 Professional Khái niệm 8 Một thông điệp (message) là một lời yêu cầu một hoạt động. Một thông điệp được truyền khi một đối tượng triệu gọi một hay nhiều phương thức của đối tượng khác để yêu cầu thông tin. Khi một đối tượng nhận được một thông điệp, nó thực hiện một phương thức tương ứng. Ví dụ đối tượng xe đạp nhận được thông điệp là chuyển đổi bánh răng nó sẽ thực hiện việc tìm kiếm phương thức chuyển đổi bánh răng tương ứng và thực hiện theo yêu cầu của thông điệp mà nó nhận được. 2.7 Tính bao gói (Encapsulation) Trong đối tượng xe đạp, giá trị của các thuộc tính được chuyển đổi bởi các phương thức. Phương thức changeGear() chuyển đổi giá trị của thuộc tính currentGear. Thuộc tính speed được chuyển đổi bởi phương thức changeGear() hoặc changRpm(). Trong OOP thì các thuộc tính là trung tâm, là hạt nhân của đối tượng. Các phương thức bao quanh và che giấu đi hạt nhân của đối tượng từ các đối tượng khác trong chương trình.Việc bao gói các thuộc tính của một đối tượng bên trong sự che chở của các phương thức của nó được gọi là sự đóng gói (encapsulation) hay là đóng gói dữ liệu. Đặc tính đóng gói dữ liệu là ý tưởng của các nhà thiết các hệ thống hướng đối tượng. Tuy nhiên, việc áp dụng trong thực tế thì có thể không hoàn toàn như thế. Vì những lý do thực tế mà các đối tượng đôi khi cần phải phơi bày ra một vài thuộc tính này và che giấu đi một vài phương thức kia. Tùy thuộc vào các ngôn ngữ lập trình hướng đối tượng khác nhau, chúng ta có các điều khiển các truy xuất dữ liệu khác nhau. Khái niệm 9 Đóng gói (encapsulation) là tiến trình che giấu việc thực thi chi tiết của một đối tượng. Một đối tượng có một giao diện chung cho các đối tượng khác sử dụng để giao tiếp với nó. Do đặc tính đóng gói mà các chi tiết như: các trạng thái được lưu trữ như thế nào hay các hành động được thi công ra sao có thể được che giấu đi từ các đối tượng khác. Điều này có nghĩa là các chi tiết riêng của đối tượng có thể được chuyển đổi mà hoàn toàn không ảnh hưởng tới các đối tượng khác có liên hệ với nó. Ví dụ, một người đi xe đạp không cần biết chính xác cơ chế chuyển bánh răng trên xe đạp thực sự làm việc như thế nào nhưng vẫn có thể sử dụng nó. Điều này được gọi là che giấu thông tin. Khái niệm 10 Che giấu thông tin (information hiding) là việc ẩn đi các chi tiết của thiết kế hay thi công từ các đối tượng khá 72
- FlashCS4 Professional 2.8 Tính thừa kế (Inheritance) Hệ thống hướng đối tượng cho phép các lớp được định nghĩa kế thừa từ các lớp khác. Ví dụ, lớp xe đạp leo núi và xe đạp đua là những lớp con (subclass) của lớp xe đạp. Như vậy ta có thể nói lớp xe đạp là lớp cha (superclass) của lớp xe đạp leo núi và xe đạp đua. Khái niệm 11 Thừa kế (inheritance) nghĩa là các hành động (phương thức) và các thuộc tính được định nghĩa trong một lớp có thể được thừa kế hoặc được sử dụng lại bởi lớp khác. Khái niệm 12 Lớp cha (superclass) là lớp có các thuộc tính hay hành động được thừa hưởng bởi một hay nhiều lớp khác. Lớp con (subclass) là lớp thừa hưởng một vài đặc tính chung của lớp cha và thêm vào những đặc tính riêng khác. Các lớp con thừa kế thuộc tính và hành động từ lớp cha của chúng. Ví dụ, một xe đạp leo núi không những có bánh răng, số vòng quay trên phút và tốc độ giống như mọi xe đạp khác mà còn có thêm một vài loại bánh răng vì thế mà nó cần thêm một thuộc tính là gearRange (loại bánh răng). Các lớp con có thể định nghĩa lại các phương thức được thừa kế để cung cấp các thi công riêng biệt cho các phương thức này. Ví dụ, một xe đạp leo núi sẽ cần một phương thức đặc biệt để chuyển đổi bánh răng. Các lớp con cung cấp các phiên bản đặc biệt của các lớp cha mà không cần phải định nghĩa lại các lớp mới hoàn toàn. Ở đây, mã lớp cha có thể được sử dụng lại nhiều lần. Ví dụ: Ở mục trên ta đã có lớp Xedap, trong ví du ̣ nà y ta taọ môṭ lớ p xe XedapDiaHinh kế thừ a từ lớ p xe đap̣ , ta viế t 2 class nà y trong cù ng package măc̣ đinh: Package { Import flash.display.Sprite; public class XedapDiaHinh extends Xedap{ public function leodoc():void{ 73
- FlashCS4 Professional } } } Lớ p XedapDiaHinh có đủ cá c thuôc̣ tính maxspeed, xich như lớ p Xedap, có đủ các phương thứ c start, end ngoà i ra nó cò n có phương thứ c leodoc là phương thứ c riêng chi ̉ lớ p con XedapDiaHinh có mà lớp cha không co 2.9 Tính đa hình (Polymorphism) Một khái niệm quan trọng khác có liên quan mật thiết với truyền thông điệp là đa hình (polymorphism). Với đa hình, nếu cùng một hành động (phương thức) ứng dụng cho các đối tượng thuộc các lớp khác nhau thì có thể đưa đến những kết quả khác nhau. Khái niệm 13 Đa hình (polymorphism) nghĩa là “nhiều hình thức”, hành động cùng tên có thể được thực hiện khác nhau đối với các đối tượng các lớp khác nhau. Chúng ta hãy xem xét các đối tượng Cửa Sổ và Cửa Cái. Cả hai đối tượng có một hành động chung có thể thực hiện là đóng. Nhưng một đối tượng Cửa Cái thực hiện hành động đó có thể khác với cách mà một đối tượng Cửa Sổ thực hiện hành động đó. Cửa Cái khép cánh cửa lại trong khi Cửa Sổ hạ các thanh cửa xuống. Thật vậy, hành động đóng có thể thực hiện một trong hai hình thức khác nhau. Một ví dụ khác là hành động hiển thị. Tùy thuộc vào đối tượng tác động, hành động ấy có thể hiển thị một chuỗi, hoặc vẽ một đường thẳng, hoặc là hiển thị một hình. Đa hình có sự liên quan tới việc truyền thông điệp. Đối tượng yêu cầu cần biết hành động nào để yêu cầu và yêu cầu từ đối tượng nào. Tuy nhiên đối tượng yêu cầu không cần lo lắng về một hành động được hoàn thành như thế nào. Ví dụ: Ta có môṭ class Nguoi có phương thứ c: public function hocdixedap(xd:Xedap):void { xd.start(); 74
- FlashCS4 Professional } Phương thứ c trên được truyề n và o môṭ đố i tượng kiể u Xedap , nhưng do tính đa hình . Môṭ đố i tượng kiể u XedapDiaHinh cũng là môṭ đố i tương kiể u Xedap , nên ta có thể c ó cách dùng phương thức hocdixedap như sau: Giả sử ta có đối tượng ng kiểu Nguoi var xd : XedapDiaHinh = new XedapDiaHinh(); Ng.hocdixedap(xd); . 75
- FlashCS4 Professional Bài 3: SỰ KIỆN Mục tiêu bài học: 1. Định nghĩa sự kiện. 2. Cơ chế làm việc của sự kiện trong Flash. 3. Áp dụng sự kiện trong Flash Như đã nói về flash và as3, nếu flash phổ biến với khả năng trợ giúp người dùng trong thiết kế thì sức mạnh giúp người dùng có thể tương tác với chương trình đó là AS. Rõ ràng, khi người dùng muốn thực hiện một việc nào đó thì họ phải tác động lên một đối tượng của chương trình. Mỗi tác động đó của người dùng (thông qua bàn phím, chuột, webcam, mic ) sẽ tạo ra một sự kiện trong dòng sự kiện của hệ thống. Máy ảo flash player sẽ tìm kiếm và xác định sự kiện đó có thuộc tính như thế nào và chuyển đến hàm xử lý sự kiện tương ứng. Như vậy, có thể thấy, muốn tạo ra một chương trình flash có tương tác thì không thể không biết tới Event. Trong bài này chúng ta sẽ nói rõ về Event 3.1: Sự kiện là gì? Event là lớp nằm ngay dưới lớp Object, là lớp cha của tất cả các lớp khác. Nó là lớp cơ bản để tạo ra các đối tượng Event, là biến truyền vào trong các hàm lắng nghe sự kiện khi một Event xảy ra. Các thuộc tính của lớp Event mang theo những thông tin cơ bản về một Event, như là kiểu sự kiện hoặc hành động mặc định của sự kiện có thể bị hủy bỏ hay không. Trong phần lớn Event, những thông tin cơ bản này là rất qua n trọng. Một vài loại sự kiện khác có thể mang theo nhiều thông tin hơn, ví dụ: Một sự kiện được phát ra khi click chuột, nó có thể mang theo tham chiếu tới đối tượng được click, vị trí click (tọa độ x và y) Thêm một điều quan trọng nữa, đó là một đối tượng chỉ có thể lắng nghe sự kiện khi sự kiện đó do chính nó phát ra. Bạn có thể hỏi như vậy thì sử dụng thế nào, phần tiếp theo sẽ nói tới điều này. 3.2: Sử dụng sự kiện như thế nào? Như đã nói, một đối tượng chỉ có thể lắng nghe một sự kiện nếu sự kiện đó do chính nó phát ra. Điều này đảm bảo cho dòng sự kiện không bị rối lọan khi máy ảo flash player tìm kiếm đối tượng lắng nghe. Hãy xem một ví dụ đơn giản: tạo một đối tượng bất kì trong stage chính của chương trình, đặt tên cho nó là button, viết trong timeline của nó đoạn code như sau: 76
- FlashCS4 Professional button.addEventListener(MouseEvent.CLICK, onClickHandler); function onClickHandler(e: MouseEvent): void { trace(“bạn vừa click vào button”); } Khi chạy chương trình, mỗi khi bạn click vào đối tượng đã vẽ thì tại màn hình output sẽ xuất hiện dòng chữ “bạn vừa click vào button”. Trong đọan code trên, chúng ta sử dụng hàm addEventListener(), hàm này được định nghĩa trong class EventDispatcher, là anh em của lớp Event, class này định nghĩa ra các quy tắc để một sự kiện được phát ra. Hàm addEventListener() nhận vào 2 tham số chính là kiểu Event, ở đây là MouseEvent.CLICK và tham số thứ hai là hàm được gọi khi sự kiện sảy ra, ở đây, hàm là onClickHandler(). Hàm onClickHandler() nhận tham số luôn luôn là kiểu sự kiện mà từ đó nó được gọi, trong ví dụ trên, hàm được gọi khi sự kiện mouse click xảy ra nên tham số mà nó nhận vào thuộc kiểu MouseClick. Dạng đầy đủ của hàm addEventListener : public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Trước khi nói tới 3 tham số còn lại, cần phải hiểu quá trình một Event được xử lý. Khi có một sự kiện xảy ra, nó trải qua 3 quá trình của luồng sự kiện: 1. Giai đoạn nắm bắt: sự kiện chuyển từ phía trên cùng của danh sách thứ bậc tới node chỉ trước node mục tiêu. 2. Giai đoạn mục tiêu: ở đây, đối tượng lắng nghe sự kiện được xác định, và các giá trị mà sự kiện mang theo được khảo sát 3. Giai đoạn nổi bọt. Tại 3 quá trình này, tất cả thuộc tính của sự kiện được khảo sát và đưa vào luồng sự kiện hệ thống, đồng thời được gửi tới hàm xử lý nó. Quay trở lại các tham số còn lại trong hàm addEventListener: 77
- FlashCS4 Professional 1. useCapture: giá trị, mặc đinh là fasle, nếu nó là true, sự kiện sẽ được xử lý ngay trong quá trình nắm bắt của luồng sự kiện. Hãy nhớ rằng, tại giai đoạn nắm bắt, node mục tiêu chưa được xử lý nên hàm bắt sự kiện sẽ không được gọi. 2. priority: mặc định là 0, nó cho biết độ ưu tiên của 1 sự kiện nếu cùng một lúc xảy ra nhiều sự kiện, nếu tham số này càng lớn thì sự kiện có độ ưu tiên càng cao 3. useWeakReference: tham số này quyết định những tham chiếu tới việc lắng nghe sự kiện này là mạnh hay yếu, mặc định là false, có Nghĩa là mạnh. Nếu useWeakReference = false, nó sẽ ngăn ngừa việc các tham chiếu bị xóa bỏ bởi bộ dọn rác. Trong thực tế, 3 tham số trên không thường được sử dụng nên các bạn cũng chỉ cần quan tâm tới 2 tham số bắt buộc là type và listener mà thôi. Tới đây, bạn có thể đặt câu hỏi, có thể khởi tạo để một đối tượng để nó lắng nghe một sự kiện thì có thể hủy bỏ điều đó không, câu trả lời là có, sử dụng hàm removeEventListener để làm việc này, với các tham số giống với những gì bạn đã sử dụng trong hàm addEventListener(). 3.3: Cần chú ý những gì khi làm việc với Event? Những câu hỏi thường gặp nhất bạn đều có thể được giải quyết khi đọc help của flash. Tuy thế tôi xin đưa ra ở đây một số chú ý quan trọng: 1. Mỗi đối tượng chỉ có thể nghe được một số loại Event (không kể những loại do người dùng tự định nghĩa), tất cả đều được liệt kê trong đặc tả của lớp mà đối tượng đó thuộc về. Nên đọc kĩ những đặc tả này trước khi làm việc. 2. Một đối tượng phát ra được Event nào thì có thể và chỉ có thể nghe được Event đó. Thậm chí, nếu 2 đối tượng thuộc cùng 1 class cũng không thể nghe được sự kiện do đối tượng kia phát ra 3. Nhớ removeEventListener() sau khi sử dụng, để giảm bộ nhớ mà chương trình chiếm dụng. 4. Không nên để một đối tượng lắng nghe quá nhiều Event nếu bạn chưa thực sự hiểu rõ về chúng. Sự thật, điều này làm chương trình của bạn chạy không ổn định. 5. Hãy tự tạo cho mình những Event riêng, điều này rất tốt vì như vậy bạn có thể kết hợp nhiều Event có sẵn để tạo được 1 Event riêng, nó giải quyết được vấn đề mà mục 4 nêu ra. 3.4: Bạn vẫn còn thắc mắc chứ? Tới đây chắc bạn đã phần nào hiểu được về Event. Tôi xin được đưa ra một ví dụ cụ thể cho các chú ý đã nêu trên Bước 1: Tạo một file flash mới đặt tên là EventExample.fla, lưu lại. Chúng ta không cần vẽ gì trong file này cả, tìm tới màn hình properties của stage chính, viết tên document class là Main. 78
- FlashCS4 Professional Bước 2: Tạo một file mới có tên Main.as, lưu vào cùng thư mục với file đã tạo trong bước 1. Giờ trở lại với file EventExample.fla, ta mở cửa sổ properties ra, click vào hình cây bút chì ở cạnh ô nhập tên document class, file Main.as sẽ được mở ra trong 1 tab mới. Chúng ta chưa làm gì vội với file này Bước 3: Tạo một file mới có tên NewEvent.as đặt trong cùng thư mục với 2 file đẵ tạo ở trên, mở file này ra và viết code cho nó như sau: package { import flash.events.*; public class NewEvent extends Event { public static var NEW_EVENT : String = "new event"; public var index: Number = new Number(); public function NewEvent(type:String,index:int, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); this.index = index; } override public function clone():Event { return new NewEvent(type, this.index, bubbles, cancelable); } } } Đoạn code trên mô tả một class được thừa kế từ Event, nó có một thuộc tính là NEW_EVENT thuộc kiểu string và có dạng static. Điều này có nghĩa là chúng ta có thể truy nhập vào thuộc tính này mà không cần khởi tạo một đối tượng mới thuộc kiểu NewEvent, và thuộc tính này sẽ trở thành một Event thuộc kiểu NewEvent, nó giống với các từ khóa khi ta sử dụng kiểu MouseEvent là CLICK hay MOUSE_UP Biến thứ 2 là index có kiểu Number (kiểu số tổng quát), biến này lưu một giá trị mà Event phải mang theo khi nó được phát ra. Constructor của class này truyền vào 4 tham số: 1. Tham số thứ nhất là type, có thể thấy trong MouseEvent, chúng ta có các kiểu như: CLICK, DOUBLE_CLICK, MOUSE_OUT, MOUSE_OVER đó là những kiểu event được khai báo là các hằng static (các biến kiểu static có thể sử dụng mà không cần khai báo đối tượng, trong đoạn code trên kiểu được khai báo là public static var NEW_EVENT : String = "new event";) 2. Tham số thứ 2 là index, như đã nói ở trên, đây là giá trị mà Event sẽ mang theo khi nó được phát ra, mà trước khi được phát ra thì nó phải được khởi tạo và truyền vào một index. 79
- FlashCS4 Professional 3. Tham số thứ 3 là bubbles, như đã nói, khi một Event xảy ra, nó trải qua 3 giai đoạn, nếu một Event không cần tới giai đoạn Bubbles thì thuộc tính bubbles của nó sẽ có giá trị false, thông thường, tham số này là mặc định false, ta không cần phải quan tâm 4. Tham số cuối cùng là cancelable, sau khi được khởi tạo, nó trở thành thuộc tính read only, nó cho biết rằng một Event xảy ra có thể hủy bỏ được những hành động mặc định của nó không. Ví dụ, khi ta nhập ký tự vào một ô text, sự kiện TextEvent.TEXT_INPUT xảy ra mỗi lần ta ấn phím, hành động mặc định của nó là hiển thị phím ta vừa ấn (nếu được). Ta hoàn toàn có thể sử dụng hàm preventDefault() để thay đổi sự kiện mặc định đó do sự kiện TextEvent.TEXT_INPUT có thuộc tính cancelable là true. Sau khi nhận 4 tham số trên, constructor gọi hàm khởi tạo của cha nó là Event, rồi gán giá trị index được truyền vào cho thuộc tính index của nó. Sau khi khởi tạo một Event, để phát ra được Event đó thì chúng ta cần gọi tới hàm dispatchEvent(e: Event), hàm này làm nhiệm vụ đưa một Event vào luồng sự kiện của hệ thống. Mặt khác nó cũng gọi tới một hàm được định nghĩa trong Class Event, đó là clone(). Hàm này trả về một đối tượng Event. Thông thường chúng ta thường muốn trả về chính xác kiểu Event chúng ta tạo ra nên hàm clone() được viết lại (như trên) Bước 4: Tạo ra một file mới để làm đối tượng phát ra Event tại thư mục lưu chương trình. File mới có tên là Rect.as, code của nó như sau: package { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.*; public class Rect extends MovieClip { private var index: int = new int(); private var mySprite: Sprite = new Sprite(); public function Rect(ind: int): void { this.index = ind; this.addEventListener(MouseEvent.CLICK, onClickHandler); mySprite.graphics.beginFill(0x001177, 1); mySprite.graphics.drawRect(0, 0, 50, 50); mySprite.graphics.endFill(); this.addChild(mySprite); } 80
- FlashCS4 Professional private function onClickHandler(e: MouseEvent): void { var evt: NewEvent = new NewEvent(NewEvent.NEW_EVENT, this.index, false, false); dispatchEvent(evt); } } } Class này nhằm tạo ra một đối tượng hình vuông, có thuộc tính là indexrồi cho nó lắng nghe sự kiện click, mỗi khi đó sẽ gọi ra hàm onClickHandler(e: MouseEvent). Hàm này làm nhiệm vụ sinh ra môt đối tượng Event thuộc kiểu NewEvent mà ta đã tạo ra trong bước 3 rồi phát nó ra, mang theo thuộc tính index của bản thân, bạn nên nhớ thuộc tính này là private và cũng không có hàm set/get nào khác, về lý thuyết không thể lấy được giá trị này của mỗi đối tượng Rect. Bước 5: Quay trở lại hàm class Main đã tạo ra trong bước 2, ta viết code cho nó như sau: package { import flash.display.Sprite; import flash.geom.Rectangle; import flash.text.TextField; import flash.text.TextFormat; public class Main extends Sprite { private var txt: TextField = new TextField(); private var arr: Array = new Array(); public function Main(): void { this.addChild(txt); txt.x = 100; txt.y = 100; txt.width = 400; var i:int = new int(); for (i = 1; i <= 10; i++) { var rect: Rect = new Rect(i); arr.push(rect); } for (i = 0; i < arr.length; i++) { Rect(arr[i]).addEventListener(NewEvent.NEW_EVENT, displayIndex); this.addChild(arr[i]); this.arr[i].x = (i * 80); } 81
- FlashCS4 Professional } private function displayIndex (e: NewEvent): void { var format: TextFormat = new TextFormat("Tahoma", 20, 0xff1111); this.txt.text = "Bạn đã click vào hình vuông thứ " + (e.index).toString(); this.txt.setTextFormat(format); } } } Hàm này làm nhiệm vụ khởi sinh ra 10 đối tượng Rect, có index chạy từ 1 => 10, add nó lên màn hình. Đồng thời tạo ra một text field để hiển thị. Bạn hãy chú ý lệnh Rect(arr[i]).addEventListener(NewEvent.NEW_EVENT, displayIndex); Lệnh này khai đăng kí để mỗi đối tượng thuộc kiểu Rect lắng nghe sự kiện NewEvent.NEW_EVENT. Hàm được gọi khi sự kiện này xảy ra là displayIndex(e: NewEvent), có danh sách biến giống với việc bạn sử dụng những Event thông thường khác. Một lần nữa chú ý tới lệnh this.txt.text = "Bạn đã click vào hình vuông thứ " + (e.index).toString(); Hàm này sẽ đưa dòng chữ “bạn đã click vào hình vuông thứ i” với i = (e.index).toString(); ở đây e là biến thuộc kiểu NewEvent, nó chính là đối tượng đã được phát ra từ hàm dispatchEvent() trong class Rect. Dễ thấy, mỗi lần bạn click vào một hình vuông, một sự kiện NewEvent được phát ra, khi đó text field sẽ hiển thị index của đối tượng được click. Dưới đây là những gì bạn sẽ thấy: 82
- FlashCS4 Professional Tôi đã click vào hình vuông thứ 3 và dòng chữ “Bạn đã click vào hình vuông thứ 3” xuất hiện. Vậy là, tuy thuộc tính index của mỗi đối tượng thuộc kiểu Rect là private, nhưng chúng ta vẫn có thể lấy được nó từ class Main. Tới đây, bạn có lẽ sẽ thấy, ví dụ này chưa đáp ứng được những gì nêu ra trong mục 3.3, vậy thì hãy thử thay đổi một số thứ coi. Đầu tiên thay dòng Rect(arr[i]).addEventListener(NewEvent.NEW_EVENT, displayIndex); Bằng: if(i<arr.length-1) Rect(arr[i]).addEventListener(NewEvent.NEW_EVENT, displayIndex); Có nghĩa là hinh vuông thứ 10 không lắng nghe sự kiện như các hình khác. Nhưng bản than nó vẫn tự nghe sự kiện click và phát ra sự kiện NewEvent.NEW_EVENT. Vấn đề là không hề có dòng chữ nào hiện ra cả. Câu hỏi đặt ra: tại sao tất cả 9 đối tượng còn lại đều lắng nghe NewEvent.NEW_EVENT, đối tượng thứ 10 phát ra sự kiện này nhưng không tự nghe, tại sao các đối tượng khác không nghe và hiển thị thông tin index của đối tượng số 10 kia. Câu trả lời đúng như những gì mục 3.3.1 và 3.3.2 nêu ra. Tiếp nữa, giả sử mỗi đối tượng Rect không chỉ phải nghe sự kiện click mà còn phải nghe một vài sự kiện khác. Rõ rang rằng nếu xử lý điều đó ở hàm Main thì sẽ rất tốn công. Thay vì thế ta xử lý việc kiểm tra các sự kiện khác đã xảy ra chưa, nếu rồi thì phát ra Event để hàm Main nhận và xử lý. Điều này giải quyết những gì mà mục 3.3.3 và 3.3.5 đưa ra. Việc removeEventListener không được nêu ra ví dụ trong trường hợp này, tuy thế đây là một chú ý không kém phần quan trọng. Các bạn hãy tham khảo bài 1 chương 4 về code trên timeline, trong đó có sử dụng tới hàm đó, hãy đọc kĩ và thử thay đổi để không sử dụng lệnh đó nữa, bạn sẽ thấy một số bất ổn. Trước khi kết thúc, cảm ơn vì bạn đã theo dõi tới đây . 83
- FlashCS4 Professional Chương 4: GIỚI THIỆU VỀ FLEX FRAMEWORK Giới Thiệu: Đúng như tên gọi Flex là một Framework (khung lập trình) hỗ trợ lập trình viên viết các ứng dụng dựa trên SWF (SWF-Based Application), các ứng dụng này chạy trên Flash Player từ phiên bản 9 trở lên, hiện tại phiên bản mới nhất là phiên bản 10. Cũng như .NET Framework và Java, Flex Framework tích hợp sẵn các Component (như Button, Panel, Container, List, Link Button, Box, ) để viết ứng dụng. Các ứng dụng mới này có tên là RIA (Rich Internet Applicaton) , là xu thế mới nhất về viết ứng dụng hay viết phần mềm, trong khuôn khổ bài viết tôi sẽ chỉ nói sơ qua RIA là gì. Một các dễ hiểu , RIA là các ứng dụng chạy trên Internet nhưng lại mang đầy đủ sức mạnh của các ứng dụng chạy trên Desktop truyền thống. Đó có thể là các ứng dụng soạn thảo văn bản , tạo slide , chỉnh sửa và chia sẻ ảnh trực tuyến. Các ứng dụng này có 2 trạng thái làm việc, một là offline và online. Nói đến đây có thể các bạn có thể còn khá mơ hồ về RIA, hãy bắt đầu bằng việc truy cập vào trang Acobat.com hay PhotoshopExpress.com , SlideRocket.com thử dùng các ứng dụng này để có được hình dung về RIA. Sau đó hãy cùng tôi tìm hiểu về Flex để học cách viết các ứng dụng RIA. Ý tưởng về sự ra đời của Flex là do, mối trường của Flash hỗ trợ rất kém cho việc code, khiến các Developer những người không có kiến thức về Design gặp rất nhiều khó khắn trong việc viết ứng dụng cũng như tạo các Animation Script trên nền Flash (Flash Platform).Với nhược điểm này của Flash, Adobe đã tung ra Adobe Flex, với mục đích hỗ trợ tốt hơn cho các Developer, giúp họ viết được các ứng dụng một cách nhanh nhất , tạo các Animation hoàn toàn bằng code. Đồng thời với phiên bản mới nhất hiện sẽ phát hành vào cuối năm 2009 , Adobe Flex 4 (tên mã là Gumbo) hứa hẹn sẽ tạo ra một môi trường phát triển ứng dụng hoàn hỏa cho cả Designer và Developer. Bạn hãy hình dung một bối cảnh như sau, các Designer sẽ thiêt kế bằng Adobe Photoshop hay iLLustrator hay FireWork hay Flash, tất cả các nét vẽ của họ sẽ được giữ nguyên khi bạn import vào Adobe Flex 4.Và nhiệm vụ của chúng ta, những người Developer sẽ tạo các chức năng, xủ lý , kết nối dữ liệu, hiệu ứng, và hiện thực hóa ý tưởng của các Designer trong ứng dụng . Trong chương này chúng ta sẽ học được các cách sau: Cài đặt Flex Builder 3 for Window, MAC. 1. Làm quen mới giao diện sử dụng của Flex Builder. 2. Sử dụng MXML + AS3 cơ bản trong Flex Builder 3. 3. Những đặc điểm đáng chú ý của MXML. 4. Làm quen với các Component cơ bản của Flex Framework. 84
- FlashCS4 Professional Bài 1: CÀI ĐẶT FLEX BUILDER 3 Mục tiêu bài học: 1. Giới thiệu Flex Builder 3. 2. Cài đặt Flex Builder 3 Nếu một trong số các bạn từng viết Java, lúc bắt đầu họ sẽ dậy cách chạy các doạn code java bằng lệnh trong Command Promp (Start->Run, gõ “cmd” rồ Enter). Để soạn code java bạn có thể dùng Notepad (Start->Run, gõ “Notepad”, Enter) để soạn thảo.Muốn dịch một file java bạn phải gõ lệnh, giả sử tôi có một file tên là Hello.java trog thư mục D:/Java, muốn dịch file này để chạy tôi gõ lệnh C:/javac D:/Java/Hello.java . Bộ Java SDK (Software Development Kit) sẽ tự động dịch file này, tuy nhiên nếu chương trình bạn có lỗi, sẽ rất khó có thể tìm ra lỗi (debug) của đoạn code đó ở đâu. May mắn thay, nhờ có các trình soạn thỏa và biện dịch (IDE – Intergrated Development Environment) hiện đại, sẽ giúp ta soạn thảo, dịch cũng như sửa lỗi chương trình dễ dàng và thuận tiện hơn rất nhiều. Tương tự Flex cũng vậy, bạn có thể dùng Notepad để soạn thảo và dùng lệnh trong Command Promp để dịch, hoặc dùng Flex Builder 3 là một IDE giúp bạn soạn code nhanh chóng và dễ dàng. Adobe Flex Builder 3 viết trên nền Eclipse IDE là một IDE mã mở viết bằng Java, Adobe đã thương mại hóa Flex Builder 3, nó có 2 phiên bản là Stand Alone (chạy độc lập) và Plug-in cho Eclipse. Bạn dùng bản nào cũng được , tuy nhiên các ví dụ sẽ được dùng bằng Flex Builder 3. Flex Builder là bản thương mại nhưng nếu các bạn là sinh viên thì có thể đắng ký với Adobe để nhận được key giành cho sinh viên, hoàn toàn miễn phí.(cung cấp link). Với ý kiến cá nhân tôi khuyên bạn nên dùng Flex Builder 3 trước, sau đó dùng Plug-in cho Eclipse sau. Một tin mừng nữa là Flex SDK đã và đang hướng tới Open-Source (mã nguồn mở) , điều này rất có ích vì các bạn có thể kiếm được các đoạn code quý và hay, giúp nâng cao khả năng code của mình.Các bạn có thể vào trang opensource.adobe.com hoặc labs.adobe.com để tìm những dự án mã mở mới nhất do Adobe cung cấp. Để tìm các ví dụ (sample) về Flex bạn có thể vào trang Adobe.com/devnet/flex chọn tab Sample, các samples này đều cung cấp code cho bạn. Để chạy được nó các bạn phải cài Flash Player mà chút nữa tôi sẽ hướng dấn bạn cài đặt. Để lấy được code của các ví dụ, khi đang chạy bạn ấn chuột phải rồi chọn “ViewSource”. 85