intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Sổ tay Thực hành ActionScript 3.0

Chia sẻ: Ha The Vinh | Ngày: | Loại File: PDF | Số trang:137

117
lượt xem
19
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Với kết cấu nội dung gồm 6 phần, Tài liệu Thực hành ActionScript 3.0 giới thiệu đến các bạn những nội dung: Sự bắt đầu thực hành ActionScript 3.0, đồ họa và sự tương tác, văn bản, âm thanh và video, lập trình thiết kế và tài nguyên,... Mời các bạn cùng tham khảo nội dung Tài liệu để có thêm Tài liệu phục vụ nhu cầu học tập và nghiên cứu.

Chủ đề:
Lưu

Nội dung Text: Sổ tay Thực hành ActionScript 3.0

  1. LỜI NÓI ĐẦU Khi quyết định nếu cuốn sách trong tay bạn sẽ là tài nguyên tốt cho thư viện của bạn. Nó có thể giúp bạn biết tại sao chúng tôi, những tác giả đã viết ra cuốn sách đặc biệt này. Chúng tôi là hai lập trình viên sử dụng Flash trong toàn bộ mọi ngày làm việc của chúng tôi, nhưng chúng tôi cũng là những giáo viên. Kết hợp, chúng tôi đã dạy hàng nghìn sinh viên ở nhiều trường đại học, dễ dàng quá trình đào tạo, các hội nghị, và lúc đó chúng tôi đã chia sẻ một số king nghiệm quan trọng. Chúng tôi đã nhất quán nói rằng nhiều đặc trưng cuốn sách ActionScript phù hợp với nhóm người bắt đầu. Trước tiên chúng tôi đã rất ngạc nhiên thực sự đã vượt quá quan điểm, nhưng sau đó chúng tôi đã nhận thức rõ rằng chúng tôi không đủ thông tin để tạo thành các đánh giá. Chúng tôi không sử dụng tài nguyên người mới bắt đầu trong công việc của chúng tôi và chỉ có chương trình giảng dạy cá nhân để dựa vào. Nên, chúng tôi bắt đầu nghiên cứu làm thế nào chúng tôi có thể lấp đầy sự thiếu hụt này và cung cấp một cuốn sách cho sinh viên của chúng tôi để thực sự giúp họ bên ngoài lớp học. Chúng tôi đã nói với rất nhiều sinh viên, các nhóm người sử dụng, và những người dạy và đã bắt đầu phác thảo ra một cuốn sách mà chúng tôi nghĩ đưa ra những gì chúng tôi đã học được trong thực tiễn. Khi ActionScript 3.0 được phát hành, nhóm số người quan tâm tăng đột ngột. Một loạt các phản ứng từ tình trạng bị kích động đến kính sợ, như việc học ActionScript 3.0 bẻ cong đi sẽ trở nên dễ dàng. Nói về Platform Flash tách mảnh thành Flex (“người phát triển”) và Flash (“Người thiết kế”) gây cho nhiều người thiết kế và người mới lập trình không rõ ràng cho đến bây giờ về tương lai của chúng. Khi Flash CS3 Professional vừa được phát hành, nhu cầu cần cho tài nguyên hướng dẫn không được giải quyết (và trong nhiều trường hợp, còn tăng thêm), và chúng tôi đã biết nó là thời gian để phát triển cuốn sách mà bạn đang nắm giữ. Chúng tôi hy vọng cuốn sách này sẽ giúp những người dùng Flash từ những người muốn tìm hiểu đến những người hoảng sợ, từ nhưng người đang háo hức tới nhưng người đã có kinh nghiệm nắm lấy khả năng và hiệu xuất của ActionScript 3.0. Chúng tôi hy vọng những trang này sẽ làm giảm đi sự chuyển sang từ mọi thứ ở phiên bản trước đó, bất cứ thứ gì, ActionScript phải được sử dụng, cái lớn nhất trong cấu trúc là thay đổi từ ngôn ngữ khi bắt đầu chính nó. Cuốn sách này được hướng vào những người thiết kế và phát triển Flash với ActionScript trong thời gian đầu, cũng như người mới lập trình có thể tìm thấy sự nhạy bén để hiểu biết ActionScript 3.0. Mặc dù chúng tôi cảm thấy bìa cuốn sách khá là cơ bản, cả sự hiểu biết về giao diện Flash và số lượng nhỏ của kinh nghiệm viết kịch bản nắm được. Chúng tôi tin rằng chúng tôi đã giải thích rõ ràng trong tài liệu này và đủ ngắn gọn để người đọc bắt đầu, nên nếu bạn là người mới bước vào lập trình, chúng tôi chào mừng bạn! Tuy nhiên, nếu bạn có một chút trọng yếu, chúng tôi khuyên bạn nên lướt qua chương 2 để xem nếu bạn nghĩ rằng chúng tôi đã cung cấp đủ quy tắc cốt lõi lập trình để lấp đầy lỗ trống trong sự hiểu biết của bạn, nhưng hai chương đầu cung cấp cở sở để cho xây dựng những chương khác. Cũng vậy, nếu bạn là lập trình viên tương đối có kinh nghiệm với ActionScript 2.0, có thể bạn muốn nhìn qua một vài chương thích thú trước khi quyết định dù cuốn sách này là dành
  2. cho bạn hay không. Chúng tôi làm nổi bật vấn đề chuyển từ ActionScript 2.0 sang ActionScript 3.0, nhưng muốn bạn vui vẻ với đặc điểm và không gặp khó khăn với phương pháp chúng tôi đã thông qua trước khi bạn quyết định tin dùng cuốn sách này. Chúng tôi cố gắng để dạy các nguyên tắc cơ bản sau mỗi chương trong một mẫu, số chương, và tổng số trang đã phân loại dễ dàng. Trong nhiều trường hợp, cần một khoảng thời gian để đọc xuyên xuốt 2 phần tiếp theo mới chắc chắn rằng đây là những điều mà cuốn sách mang lại cho bạn. Không giống như các cuốn sách ActionScript 3.0 khác mà chúng tôi đã từng xem, cuốn sách này không dựa nhiều trên nguyên tắc lập trình hướng đối tượng. Nếu bạn không quen với sự hạn chế này, đừng lo lắng. Bạn có cuốn sách thích hợp trong tay bạn và bạn sẽ học thêm với lần lượt mỗi chương. Chúng tôi biểu thị khái niệm bao chùm lên chương sử dụng tập trung cú pháp có thể thực hiện được trong timeline, và dần dần đưa vào khái niệm OPP cùng với phương pháp đó. Năm chương đầu tiên bao gồm đưa ra các event mới trong ActionScript 3.0 và cách thức hiển thị nội dung (the display list) – không đưa thêm vào số lượng ít các nội dùng đó là lớp hay liên quan đến hướng đối tượng. Bắt đầu trong chương 6, chúng tôi cung cấp thêm đưa ra sự hướng đối tượng, bắt đầu với lập trình hướng đối tượng cơ bản, và tiếp tục chín chương còn lại với việc lựa chọn lớp hay lập trình hướng đối tượng áp dụng cho các ví dụ. Nếu bạn đã hứng thú trong chính bạn với các ví dụ về lập trình hướng đối tượng từ giai đoạn đầu, toàn bộ các ví dụ trong các chương chính cũng có thể dùng được trong các lớp mẫu khi tải xuống được mã nguồn. Điều này không chỉ cung cấp bước nhảy ban đầu cho những thứ với một vài kinh nghiệm lập trình hướng đối tượng, nhưng nó cũng đáp ứng cơ hội tiếp thu kiến thức nếu bạn tự tìm ra sự tiến xa hơn một chút để tiếp nhận sự thay đổi (curve). Tốt nhất, nét đặc trưng mới Document Class của Flash CS3 Professional cho phép bạn bắt đầu sử dụng lớp nhanh hơn trước đây, cho phép một lớp đáp ứng hầu như phục vụ cho (stand-in) timeline chính của nhiều file .fla. Toàn bộ bạn có được để sử dụng nó là gõ vào tên của lớp trong Flash Property Inspector ( nếu bạn không thể đợi để học thêm, hãy bước sang đoạn “The Document Class” trong chương 1). Cuối cùng, chúng tôi đã thiết kế một dự án đã triển khai liên quan trặt trẽ với cuốn sách này. Bắt đầu với chương 7, chương đầu tiên theo sau là lập trình hướng đối tượng cơ bản, có thể download mã nguồn đặc trưng gói lớp cho mỗi chương. Các lớp bao gồm các phương thức tiện ích và các thuộc tính mà sẽ được sử dụng trong các project bổ sung. Khi bạn cảm thấy yên tâm (comfortable) với cú pháp của ActionScript 3.0, và nguyên tắc cơ bản của lập trình hướng đối tượng, bạn có thể củng cố (reinforce) những gì bạn đã học được bằng cách xây dựng project. Những file có thể sử dụng được website đồng hành (companion) của cuốn sách, mà chúng tôi sẽ nói về trong một lúc nào đó. Chúng tôi đã cố gắng để thiết kế cuốn sách chứa đựng nhiều yếu tố cần thiết (essentials) về ActionScript như chúng tôi có thể tính đến (include), dựa vào (given) phạm vi và khuôn khổ của nó. Phần I: Sự bắt đầu. Phần I bắt đầu với chương 1, thảo luận về ActionScript 1.0, 2.0, và 3.0, và sự khác nhau thế nào của các version được sử dụng trong Flash CS3 Professional ứng dụng và Flash Player. Nó kết thúc(concludes) với chương 2 xem xét việc xây dựng khối đó là nguyên tắc cơ bản cốt
  3. lõi ngôn ngữ trung gian của ActionScript. Phần II: Đồ họa và sự tương tác Chương 3 bắt đầu(leads off) phần II, là đoạn dài nhất của cuốn sách, với sự giải thích về các từ vựng cơ bản của ActionScript: propertises, methods, và events (kể cả các nét riêng biết khác của ActionScript 3.0). Chương 4 tập trung nhiều vào nội dung hiển thị, chương 5 bao chùm (covers) các điều khiển timeline, và chương 6 đưa ra lập trình hướng đối tượng. Chương 7 thảo luận đối tượng hoạt hình sử dụng ActionScript, và chương 8, chương 9 nói về (explain) việc vẽ với code. Phần III: Văn bản Chương 10 là chương duy nhất của phần 3 và tập trung và định dạng văn bản, và hỗ trợ HTML, và sử dụng định kiểu trình bày trang (cascading style sheets). Phần IV: Âm thanh và Video Chương 11 sẽ mở ra phần IV với sự thảo luận về âm thanh. Thêm vào việc vận dụng (manipulating) âm thanh bên trong (internal) và bên ngoài(external), nó tác động (touches) trên metadata của ID3 và đưa đến kết quả (culminate) với sự vận dụng (exercise) để hình dung (visualization) âm thanh hiệu quả, việc lấy ra một mẫu sóng âm trong khi đang phát lại. Chương 12 bao (wraps up) phần IV bằng việc thể hiện (demonstrating) làm thế nào để chơi cả video với và không có thành phần nào, giống như làm thế nào để đặt phụ đề video của bạn để tiếp cận và nhiều thứ tiếng được hỗ trợ. Phần V: Vào/Ra. Phần V tập trung vào việc loading tài nguyên vào Flash và gửi dữ liệu ra một server hay các client khác. Chương 13 bao gồm loading các file SWF, images, và dữ liệu mã hóa URL, giống như việc truyền thông giữa ActionScript 3.0 và ActionScript 1.0/2.0 load các file SWF, và thảo luận ngắn về các vấn đề(issues) bảo mật. Chương 14 bao gồm XML và chuẩn mới để làm việc với XML làm cho công việc dễ dàng như với các đối tượng, phương thức, và thuộc tính ActionScript. Phần VI:Lập trình thiết kế và tài nguyên. Chúng tôi trình bày phần IV trong cuốn sách. Chương 15 cần xem một chút phương pháp lập trình, hướng đối tượng mẫu thiết kế, và tài nguyên để nghiên cứu thêm nữa. Cuốn sách tập trung vào ActionScript 3.0, nó áp dụng cho hầu hết các phân đoạn của Flash platform, nhưng nó được trình bày trong môi trường Flash CS3 Professional. Như vậy nó không bao gồm Flex, AIR, Flash Media Server, hay các công nghệ platform Flash khác. Thêm nữa, trong khi nó không chứa đựng kỹ thuật lập trình hướng đối tượng, nó không chỉ ra trong tài liệu theo chiều xâu hơn. Để biết thêm thông tin về điều này, vui lòng xem phần trước, “How This Book Is Organized” Như mục cấp độ văn bản, cuốn sách này có thể hiểu được khó khăn mà giới hạn về phạm vi chúng tôi đưa ra. Duyệt qua bảng nội dung sẽ cho bạn các ý tưởng hay của chủ đề chúng tôi
  4. sẽ đề cao và, trong một vài trường hợp, sẽ tốt cho những thứ mà chúng tôi đã bao hàm trong tài liệu. Tuy nhiên, cái đó là một chút đáng chú ý của ActionScript mà không được thảo luận theo mức độ trung bình và nâng cao. Nó bao gồm sự kết nối cơ sở dữ liệu, biểu thức thông thường, lập trình cho thiết bị mobile, dịch vụ Web, truy cập từ xa, và tạo các thành phần cho riêng bạn. Chúng tôi không nói rằng đây là một tài liệu tham khảo. Nếu bạn là một lập trình viên ActionScript đã có kinh nghiệm có thể tìm kiếm nhanh chóng với phiên bản 3.0 của ngôn ngữ. Chúng tôi khuyên bạn rằng nên đọc cuốn ActionScript 3.0 Cookbook, của tác giả Joey Lott, Keith Peters, and Darron Schall(O’Reilly). Nếu bạn xem tham khảo toàn bộ cuốn sách, chúng tôi khuyên bạn thử cuốn sách Essential ActionScript 3.0 của Colin Mook(O’Reilly). Cuốn sách của chúng tôi có thể phục vụ hữa ích cho những người như đã nói ở tiêu đề, đặc biệt nếu bạn không phải là người dùng cao cấp, nhưng nó không thay thế bởi cái khác được. Phần I: Bắt đầu. Chương 1: Tổng quan ActionScript. Chương 2: Cốt lõi ngôn ngữ cơ bản. Phần I bắt đầu cuốn sách này với tập hợp(collection) tổng quan cơ bản, trải qua chương 1 và 2. Nó bắt đầu với cái nhìn khái quát về ActionScript, cung cấp một danh sách các đặc trưng nổi bật, giải thích tóm tắt các thủ tục với lại lập trình hướng đối tượng, và một chú ý quan trọng đó là cuốn sách được sắp xếp thế nào. Nó kết luận với việc xem lại cốt lõi ngôn ngữ cơ bản, hầu hết chúng còn lại phù hợp với toàn bộ các version của ActionScript. Tài liệu bắt đầu cuốn sách đưa ra như một lời giới thiệu ActionScript là ngôn ngữ mới, hay làm mới chúng với những ai đã quen thuộc với nó, và cho phép bạn sau đó tập trung vào ActionScript 3.0 – cú pháp cụ thể.
  5. Chương 1: Tổng quan về Action Script Trong chương này: -ActionScript 3.0 là gì? -Flash Platform -Lập trình thủ tục và hướng đối tượng -Document Class -Tính tương thích của Code -Những gì tiếp theo? Khi bạn muốn biết những gì về ActionScript để bắt đầu công việc với version mới, một cái nhìn tổng quan tóm tắt về sự phát triển của nó sẽ cho bạn hiểu thấu bên trong khi sử dụng nó – đặc biệt liên quan tới Flash Player và làm thế nào nó vận dụng(handles) với các phiên bản khác của ActionScript. Giới thiệu ngắn gọn chương này sẽ cho bạn cái nhìn nhanh hơn ở đây ActionScript 3.0 phù hợp với tiến trình làm việc của bạn(workflow), và sẽ bao gồm: 1. ActionScript 3.0 là gì? Nó được trông đợi (expected) rằng một phiên bản mới của ActionScript sẽ mang lại những tính năng mới. Tuy nhiên, phiên bản này đã được viết lại từ đầu và thậm chí được xử lý tách biệt từ các phiên bản ActionScript trước đó tại runtime. Điều này cố ý đẩy nhanh (splintering) Flash Player làm tăng sự thi hành một cách đáng kể, nhưng cũng mang đến cho nó những giới hạn như nhiều phiên bản ActionScript tác động đến nhau. Flash Platform. Vào thời điểm viết cuốn sách này, ActionScript 3.0 là ngôn ngữ lập trình bên trong của Flex và AIR (ứng dụng Adobe Inegrated Runtime). Sự khác nhau trong trình dịch và môi trường cụ thể là do ngăn ngừa mọi file viết trong ActionScript 3.0 làm việc tại mọi khía cạnh của Flash Platform, nhưng nguyên tắc cơ bản thực sự của nhiều ngôn ngữ cũng như nhau ở mọi nơi. Ngôn ngữ lập trình hướng thủ tục và hướng đối tượng. Nhiều chú ý (great deal of) tập trung vào lập trình hướng đối tượng (object – oriented programming_OPP) có tiềm năng với ActionScript 3.0, và khả năng và sức mạnh của ngôn ngữ thực sự phát huy (shine) trong phạm vi này. Tuy nhiên, bạn sẽ chuyển sang ActionScript 3.0 dễ dàng không có nghĩa là là bạn trở thành một chuyên gia OPP. Nó vẫn có thể được sử dụng tập hợp cấu trúc hàm nó mô tả cách lập trình hướng thủ tục, để viết các dự án ActionScript 3.0. Ngoài ra, sử dụng Flash CS3, nó vẫn có thể viết code trong timeline, hơn nữa coding chỉ riêng (exclusively) với các lớp bên ngoài. Nếu bạn thích lập trình hướng đối tượng, cải tiến (enhancements) thành phần cơ sở của lập trình hướng đối tượng trong ActionScript 3.0 làm nó trở nên mạnh mẽ hơn và mang lại cho nó những tính năng quan trọng khác, ngôn ngữ lập trình hướng đối tượng cở bản (như Java) và thực hiện việc chuyển ngôn ngữ dễ dàng một chút. The Document Class. Lập trình hướng đối tượng không dành cho mọi người, nhưng dành cho những người bắt đầu trên chặng đường này, Flash CS3 cung cấp một lối vào đơn giản cho các ứng dụng lập trình hướng đối tượng bằng cách tạo một lớp tài liệu(Document class). Một thuộc tính Properties Inspector, bạn chỉ cần chỉ rõ lớp ngoài là điểm bắt đầu của bạn, và
  6. không có script trong timeline được yêu cầu. Tính tương thích của code để lại. Bởi vì ActionScript 3.0 không thể trộn lẫn với các phiên bản trước đó cả ngôn ngữ trong các file giống nhau, sự phát triển các dự án hỗ trợ code cũ là không được. Chúng tôi sẽ giới thiệu ngắn gọn các vấn đề phức tạp và thảo luận về chúng rộng và xâu hơn trong các chương tiếp theo. ActionScript 3.0 là gì? Mặc dù ngôn ngữ kịch bản bên trong của các version Flash mới chứa đựng nhiều thứ sẽ giống với việc sử dụng các phiên bản trước đó, nó chắc chắn được nghĩ tới là ActionScript 3.0 với mọi thứ hoàn toàn mới, với một vài lý do rất đơn giản. Trước tiên, một vài thứ khá là khác biệt, như là mẫu event và các thành phần được hiển thị. Thứ hai, sự thay đổi tinh tế có thể chạy với mọi ngôn ngữ và yêu cầu một vài chú ý cho đến khi chúng thích hợp với bản chất thứ hai. Điều này luôn là các mối quan tâm nhỏ, giống như coi nhẹ sự thay đổi tên của thuộc tính. Và quan trọng nhất là, mặc dù, ActionScript 3.0 đã được viết lại từ đầu và sử dụng code khác hơn các phiên bản trước của ngôn ngữ. Sự tối ưu này mang lại sự thi hành tăng lên khá ấn tượng, nhưng nó có nghĩa là code ActionScript không thể pha trộn với các version trước của ngôn ngữ trong file đó được. Cái mới nhất của Version này, mặc dù, không thể đe dọa được bạn. Nó đúng là con đường nghiên cứu khó khăn với ActionScript 3.0 so với các version trước đó, nhưng điều đó thường là một chức năng cho tính mạnh mẽ của chính nó hơn các phiên bản trước gây khó khăn. Điển hình, điều đó là sự điều chỉnh lại cho phù hợp mà người dùng phải thích ứng với cách làm việc mới với mọi thứ. Để giúp bạn có thể nhận được sự thay đổi, đây là một vài điều đáng chú ý của các đặc tính mới của ActionScript 3.0. Ghi nhớ điều này có thể giúp bạn thực hiện nó dễ dàng hơn để chấp nhận sự thay đổi, đặc biệt khi sự thay đổi ban đầu có thể gây chán nản hay quá phức tạp. Một vài đặc điểm mới được lựa chọn bao gồm: Thêm các lỗi được thông báo. ActionScript 3.0 yêu cầu sự nghiêm ngặt kiểu dữ liệu của các biên, các tham số, các giá trị hàm trả về, và nhiều thứ nữa. Kiểu dữ liệu được thảo luận ở Chương 2, nhưng sự sôi nổi giảm bớt để nói về sự thông dịch các loại dữ liệu bạn mong đợi làm việc trong một vài trường hợp cụ thể. Sự kiểm tra kiểu dữ liệu được giói thiệu trong ActionScript 2.0 nhưng là các tùy chọn trước đây. Tăng sự ép buộc kiểu dữ liệu cải thiện sự kiểm tra các lỗi và cung cấp nhiều thông tin hơn trong khi coding cho phép bạn xác định đúng vấn đề. Thêm nữa, ActionScript 3.0 bây giờ đòi hỏi kiểu dữ liệu tĩnh với runtime. Điều này cải thiện tính tin cậy của kiểu dữ liệu trong runtime, và cũng cải thiện sự thi hành và giảm bộ nhớ sử dụng bởi vì kiểu dữ liệu được lưu trữ trong máy code hơn buộc phải đặt địa chỉ động trong runtime. Sự cải tiến cú pháp. Vấn đề cú pháp đã được thống nhất và quét dọn toàn bộ ngôn ngữ. Ví dụ như, tên thuộc tính đã được làm sáng sủa trong một vài trường hợp, và đã làm cho nhất quán bằng cách loại bỏ đi đầu gạch dưới, bạn sẽ được xem trong chương 3. Hơn nữa, tính phức tạp, sự tinh tế của cách tiếp cận giống hoặc tương tự các tác vụ đã được làm nhất quán, giống như khi loading
  7. các tài sản bên ngoài (được thảo luận ở chương 13) hay sự liên kết tới URL (như là xem toàn bộ cuốn sách) Cấu trúc hiển thị mới. Nhiều phương thức trước đó đã tự động thêm một vài thứ vào môi trường hiển thị bây giờ đã được thống nhất. Danh sách hiển thị mới đơn giản hóa quá trình xử lý một cách đáng kể và cũng làm nó dễ dàng hơn để chuyển sang thứ tự trực quan kiểu nạp chồng, cũng như cha, con và anh chị em ruột có mối quan hệ thứ bậc, các đối tượng được hiển thị. Như một chuyên đề lớn được được giới thiệu ActionScript 3.0, chúng ta sẽ thảo luận với độ dài trong chương 4. Cấu trúc sự kiện mới Vẫn cùng ví dụ về sự cải tiến tính bền vững, toàn bộ các event bây giờ được giải quyết bằng các sự kiện lắng nghe (event listener) – thực chất sự lắng nghe cho một event cụ thể xuất hiện, và sau đó tác động trở lại tương ứng. Cái kiểu event mới cũng mạnh mẽ hơn, cho phép các sự kiện chuột và bạn phím truyền xuyên suốt nhiều đối tượng trong danh sách hiển thị. Kiểu event được thảo luận ở chương 3. Cải tiến cách trình bày XML. Trước đây xử lý cồng kềnh, sự làm việc phức tạp với tài liệu XML bây giờ là dễ dàng với ActionScript 3.0. Thông qua chuẩn thông thường được dựa vào E4X, ActionScript bây giờ xem các đối tượng XML một cách thông minh hơn và quen thuộc. Phương pháp mới cho phép bạn sử dụng cùng cú pháp dấu chấm với chuỗi các đối tượng liên quan cùng nhau. Nhiều lựa chọn kịch bản. Phương thức xử lý văn bản mới bây giờ cho phép nhiều điều khiển nhỏ thao tác trên text. Bây giờ bạn có thể tìm text của một dòng nói riêng trong một văn bản, số các ký tự trong một dòng, và các ký tự với chỉ xác định (như là dưới chuột). Bạn cũng có thể tìm số chỉ mục trong văn bản của ký tự đầu tiên trong một đoạn, và thậm chí cũng tìm ra tối thiểu xung quanh phạm vi hình chữ nhật với bất kỳ ký tự nào. Toàn bộ các lựa chọn này không chỉ làm việc với văn bản dễ dàng, nhưng nó còn cho phép một sự tích hợp vừa khít với các dòng và các ký tự trong một trường và phạm vi trình diễn các phần tử của chúng. Text được thảo luận trong chương 10. Các biểu thức thông thường mới. Cùng với cái lợi ích cho xử lý văn bản là hỗ trợ cho các biểu thức thông thường. Các biểu thức thông thường giống như sự thao tác với text. Thay vì cụ thể chỉ thao tác bằng tay, các xâu đã biết của các ký tự, bây giờ bạn có thể thao tác văn bản sử dụng các ký tự đại diện (wild cards), các loại ký tự (số, chữ, các dấu chấm câu, … ), ký tự trắng (các dấu cách, tabs, returns), các ký tự lặp lại, và các cái khác. Một ví dụ đơn giản của biểu thức thông thường sử dụng có thể tìm thấy trong chương 10. Thêm các lựa chọn quản lý âm thanh. Các khả năng mới về âm thanh của ActionScript nằm trong số những thay đổi đáng chú ý của
  8. ngôn ngữ. Trên một mức độ thực tế, chúng cải tiến truy cập tới cả với các âm thanh riêng lẻ và toàn bộ âm thanh đang playing. Các âm thanh bây giờ được đặt thành các kênh, làm chúng dễ dàng hơn để làm việc với nhiều âm thanh riêng lẻ, nhưng cũng hội tụ toàn bộ các âm thanh suốt một âm thanh pha trộn để tập hợp điều khiển. Bạn có thể bây giờ cũng lấy được biên độ và tần số phổ dữ liệu từ các âm thanh trong lúc phát lại. Âm thanh được thảo luận trong chương 11. Cách truy cập mới dữ liệu thô. Cần cao cấp hơn nữa, bây giờ bạn có thể truy cập dữ liệu nhị phân ở runtime. Các byte riêng lẻ của dữ liệu có thể đọc trong khi download, trong khi âm thanh chơi lại, hay trong khi thao tác với dữ liệu ảnh bitmap, cho tên một vài ví dụ. Các byte đó có thể được lưu trữ trong một danh sách lớn và vẫn được truy cập nhanh và có hiệu quả. Chúng tôi cũng sẽ thể hiện một ví dụ của kỹ thuật này trong chương 11 khi đang thảo luận âm thanh ảo. Tự động phạm vi quản lý mới. Trong ngôn ngữ lập trình, từ phạm vi là đôi lúc được sử dụng để xác định khu vực mà một đối tượng tồn tại. Một tài sản Flash, như là movie clip, có thể là một phần của Flash movie nhưng không khác. Ví dụ, một movie clip con có thể lồng vào bên trong một trong hai movie clip được tìm thấy trong timeline chính. Cái movie clip được lồng đó tồn tại trong một clip nhưng không khác. Phạm vị của nó, do đó, được hạn chế bởi chính cha của chúng. Các cấu trúc lập trình có sự giới hạn phạm vi, cũng như, và những thách thức là phải đảm bảo công việc của bạn trong khoảng phạm vi đúng khi định vị các cấu trúc đó. ActionScript 3.0 rất đơn giản hóa điều này bằng cách tự động theo dõi phạm vi với chương trình của bạn. Được cải tiến lập trình hướng đối tượng. Các cấu trúc lập trình hướng đối tượng cũng đã được cải tiến trong ActionScript 3.0 với bao gồm cả các lớp đóng và các namespace mới, nằm trong các thứ khác nữa. Chúng tôi sẽ thảo luận khía cạnh của lập trình hướng đối tượng trong chương này, cũng như trong chương 6, và cũng cấp các ví dụ lớp cơ bản khắp cả cuốn sách. Cái mới trong ActionScript 3.0, toàn bộ các lớp được mặc định niêm phong, bao gồm chỉ có các thuộc tính và các phương thức được xác định thời gian tạo tồn tại trong lớp ở timeline. Nếu bạn tìm thấy sự cần thiết để thay đổi các lớp đó ở runtime bằng cách thêm các thuộc tính, ví dụ, bạn có thể vẫn thực hiện bởi các lớp chức năng. Thêm vào đó, các namespace, bao gồm cả xác định các namespace tùy ý, cho phép điều khiển tốt hơn sự thao tác trên các lớp và XML. 2. Platform của Flash. Nó quan trọng để lưu ý trong cuốn sách này tập trung chủ yếu trên sự phát triển ứng dụng ActionScript 3.0 sử dụng môi trường phát triển tích hợp Flash CS3 Professional(IDE). Mặc dù, ActionScript 3.0 là ngôn ngữ lập trình cho ứng dụng Flash Platform, cũng như, đặc biệt là Flex và AIR (ứng dụng Adobe Integrated Runtime). Điều này nghĩa là các kỹ năng kịch bản bạn phát triển trong Flash CS3 sẽ được phần lớn áp dụng cho các khu vực khác của nền Flash Platfrom, sự mở rộng của bạn đạt đến như một lập trình viên. Hiện có, mặc dù, một vài thứ quan trọng khác để hiểu sự nghiên viễn cảnh lớn của
  9. kịch bản ứng dụng. Chúng tôi sẽ cho bạn chỉ một chút ví dụ ngắn gọn ở đây để xem xét. Để bắt đầu với, Flash và Flex có trình biên dịch khác nhau nên nó không đảm bảo rằng project của bạn sẽ dịch đúng trong cả hai ứng dụng đó. Bạn có thể sử dụng Flex Builder (the trình biên dịch Flex) để biên dịch code ActionScript các file SWF không có Flex framework, và load chúng vào Flash CS3 – sinh ra được các project. Bạn cũng có thể load Flash CS3 biên dịch được các file SWF thành một project Flex. Mặc dù, ngay khi bạn rời khỏi cốt lõi ngôn ngữ cần thiết, mọi thứ bắt đầu được chú ý. Ví dụ, Flex không có tài nguyên của Flash IDE để tạo các tài sản trực quan (giống như movie clips) và bởi các dấu hiệu giống nhau, Flash không hỗ trợ nhúng tag được sử dụng bởi Flex để bao gồm các tài sản. Điều này nghĩa là các code giống nhau không thể luôn luôn được sử dụng cùng nhau khi các trực quan tùy ý được yêu cầu. Cũng vậy, kiến trúc thành phần là khác nhau, bao gồm một định dạng khác nhau và sự thiết lập thành phấn khi thực hiên không khớp nhau. Vấn đề với các tài sản trực quan đã có một vấn đề tranh luận kịch liện khi đó, và sự tiến bộ bắt đầu làm để làm giảm bớt đi một chút làn sóng đó. Adobe đã phát hành một bản vá cho Flex 2, và Flex 3 được kiểm tra công khai tại thời gian của bài viết này, sự cải tiến sự tương thích của các thành phần. Mặc dù, nó sẽ hầu như chắc chắn một khoảng trước khi chuyển code sang và từ ứng dụng này sẽ là một xử lý yên tâm, nếu nó xảy ra trơn chu. Một bước nhanh, mặc dù vậy, sự phát triển AIR thích hợp hơn của đường quan hệ. Adobe đang tiếp tục công việc trên sản phẩm AIR bắt đầu trong Flash CS3. Mọi thứ giữ lại trong trí nhớ đó là các kỹ năng ngôn ngữ ActionScript 3.0 bạn phát triển sẽ giảm nhẹ sự chuyển của bạn giữa các ứng dụng trong Flash Platform, thậm chí nếu bạn phải làm việc với các công cụ hoặc các trình biên dịch khác đến kết luận với một sản phẩm đã kết thúc. 3. Lập trình hướng thủ tục và lập trình hướng đối tượng Nhiều cuộc tranh luận đã tạo ra nhiều lý lẽ tán thành và phản đối của lập trình hướng thủ tục với lại lập trình hướng đối tượng. Để bàn đến ngắn gọn điều này, ở đây là một nền nhỏ bé liên quan đến sự tiến hóa của ActionScript. ActionScript được bắt đầu như một một ngôn ngữ lập trình tuần tự, nghĩa là kịch bản bị giới hạn một trình tự tuyến tính của các lệnh Flash làm những gì theo kiểu từng bước. Phướng pháp này đối với kịch bản là không thực sự mềm dẻo và không đẩy mạnh được sự dùng lại. Như ngôn ngữ được tiến hóa, nó trở thành một ngôn ngữ lập trình hướng thủ tục. Giống như lập trình trình tự, lập trình hướng thủ tục dựa trên từng bước thiết lập của các lệnh nhưng giới thiệu một cấu trúc hơn, phương pháp mô đun đối với kịch bản. Các thủ tục, trong một tình trạng khác giống như hàm (hay, thỉnh thoảng là thủ tục con), có thể được thực thi lại và lại lần nữa khi cần từ các phần khác của một project, không có sự copy và paste vào trên trình tự các lệnh. Tính mô đun này đẩy mạnh được sự dùng lại, và làm code dễ dàng hơn cho việc soạn thảo và có hiệu quả hơn. Những người viết kịch bản trong việc tìm kiếm một mức độ lớn hơn đảm bảo của tính mô đun và sử dụng lại được đổ về lập trình hướng đối tượng. Ngôn ngữ lập trình hướng đối tượng tạo các chương trình mà là một tập hợp của các đối tượng. Các đối tượng là trường hợp riêng lẻ của một lớp – tập hợp của code đó là độc lập và không thay đổi cốt lõi hay phá
  10. vỡ mỗi cái khác. Chia code thành các bao gói nhỏ, được biết thích đáng như một sự đóng gói, là một dấu hiệu phân biệt của ngôn ngữ lập trình hướng đối tượng. Một đặc điểm quan trọng khác nữa của lập trình hướng đối tượng là tính kế thừa, hay khả năng lấy các lớp từ các lớp cha, qua một số đặc điểm cụ thể từ cha. Một ví dụ cổ điển về cấu trúc lập trình hướng đối tượng, và sự kế thừa một cách cụ thể, định nghĩa một tập các phương tiện vận tải (vehicle) chuyên trở. Bạn phải bắt đầu với một lớp chung Vehicle bao gồm đặc điểm chung của toàn bộ các phương tiện, như là cơ bản sự di chuyển. Bạn phải sau đó tạo lớp phụ: GroundVehicle, WaterVehicle, và AirVehicle. Các lớp này có thể thay đổi hay đưa vào một vài đặc điểm cụ thể cho vận chuyển bằng ground(đường bộ), water (đường thủy), air (đường hàng không) theo thứ tự, nhưng không đủ để thể hiện các phương tiện trong thực tế. Xa hơn nữa được xuất phát từ các lớp có thể là Car và Motorcycle (giảm từ GroundVehicle), Boat và Submarine (giảm từ WaterVehicle) và Plane và Helicopter (giảm từ AirVehicle). Phụ thuộc trên sự phức tạp của hệ thống của bạn, bạn có thể làm sôi nổi trên quy trình này, việc tạo các mẫu riêng lẻ với sự thiết lập riêng biệt cho nhiên liệu tiêu thụ, ma sát, và .... Với bạn có thể cho rằng hầu như chắc chắn, phương pháp này để phát triển thêm các khả năng, tính mềm dẻo, và hứa hẹn khả năng sử dụng lại. Lợi ích này, giữa những cái khác, thỉnh thoảng vị trí lập trình hướng đối tượng là phương pháp tốt nhất cho một vấn đề. Tuy nhiên, điều đó là một khuynh hướng trong số các lập trình viên cảm thấy lập trình hướng đối tượng là giải pháp tốt cho toàn bộ các vấn đề hay, thực tế, chỉ một duy nhất một giải pháp. Điều này là không hoàn toàn đúng. Lập trình hướng đối tượng thường tốt nhất cho các dự án lớn, hay cho làm việc với một nhóm các lập trình viên, nhưng nó có thể thường vượt quá mức cần thiết cho các dự án nhỏ. Cuốn sách này cố gắng hướng dẫn sử dụng cả hai cách lập trình hướng thủ tục và lập trình hướng đối tượng thích hợp ở đây. Sử dụng các thực hành hướng đối tượng là mục tiêu tốt và cái đó chúng ta sẽ khuyến khích trong cuốn sách này. Tuy nhiên, chúng tôi sẽ trước tiên cố gắng tập trung trên các tài liệu cho mỗi chương, cú pháp nổi bật, và mở rộng làm thế nào và tại sao mỗi chủ đề sẽ được hướng dẫn trong code. Trong điều kiện tổng quát, chúng ta sẽ tập trung trên lập trình hướng thủ tục trước khi vào chương 6, chương này cung cấp với sự chuyển tiếp giữa thực hành hướng thủ tục và hướng đối tượng. Sau chương 6, bắt đầu mỗi chương sẽ tập trung các chủ đề bắt đầu được thảo luận, không có sự xung đột xung quanh cấu trúc lớp lập trình hướng đối tượng. Khi thích hợp, tuy nhiên, mỗi chương sẽ kết thúc với một ví dụ áp dụng lập trình hướng đối tượng. Điều này là phương pháp thích hợp để trình bày tài liệu cho toàn bộ những người dùng có thể trong cả hai cách lập trình hướng thủ tục và lập trình hướng thủ tục. Nó là điều chúng tôi hy vọng, không quan tâm đến kỹ năng và kinh nghiệm của bạn, bạn sẽ thực hiện các chủ đề tại nhà, và sau đó làm việc trong timeline, hay trong các lớp dựa trên trình độ hiện tại của bạn. 4. Document Class Nếu bạn lựa chọn bạn sẽ muốn để bắt đầu tư duy đòi hỏi ngay bây giờ trong lập trình hướng đối tượng, chúng tôi sẽ thể hiện cho bạn làm thế nào để dễ dàng nắm được một bước trong hướng đó. Flash CS3 đã đưa vào một đặc điểm đó là sự kết hợp đơn giản hóa một lớp chính, hay tập trung đi vào ứng dụng của bạn với FLA của bạn. Nó được gọi là document class và
  11. nó làm toàn bộ công việc của class cho bạn. Điều này nghĩa là bạn không cần bất cứ code nào trong timeline và có thể soạn thảo toàn bộ các ví dụ trong Flash hay hệ soạn thảo bên ngoài hay môi trường phát triển do bạn lựa chọn. Hãy bắt đầu với một chương mô tả ví dụ mà bạn có thể sử dụng trong timeline. Nó không làm gì hơn là sử dụng phương thức trace() để đặt một từ trong Output panel – chỉ panel đó chấp nhận text đưa ra từ file của bạn. trace("Flash"); Để tạo một document class, bạn sẽ tạo một loại bao bọc quanh phương thức trace() trong cú pháp class đúng. Tạo một file ActionScript mới (đúng hơn là một FLA document) và gõ vào bên dưới document class như sau: 1 package { 2 3 import flash.display.MovieClip; 4 5 public class Main extends MovieClip { 6 7 public function Main() { 8 9} 10 11 } 12 } Dòng đầu tiên, cùng với dấu kết thúc dòng 12, xác định package của lớp. Một package là một cấu trúc bắt buộc mà đảm bảo rằng class của bạn được biết để biên dịch. Tiếp theo, bạn phải import bất cứ lớp nào mà bạn cần để sử dụng trong package. Một document class về cơ bản cung cấp một lối tắt cho việc tạo một trường hợp của một movie clip hay sprite (một đối tượng Flash mà chỉ là một frame movie clip) và thêm nó vào danh sách hiển thị để nó có thể hiển thị được bởi Flash Player. (Điều này chỉ đúng khi đó chỉ là hiển thị, như trong trường hợp này. Chúng ta sẽ bao hàm sự vận dụng danh sách hiển thị trong chương 4.) Toàn bộ các document class phải xuất phát từ một trong hai lớp MovieClip hay Sprite (các lớp tùy chọn khác mà không là các document class thì không cần được mở rộng từ MovieClip hay Sprite nếu điều đó là không thích hợp). Trong ví dụ này sử dụng MovieClip nên bạn phải import lớp MovieClip, xem trong dòng 3. Dòng 5, cùng với dấu kết thúc ở dòng 11, là sự xác định lớp. Tên của nó là tùy ý nhưng, khi đặt tên nó, bạn sẽ cần bao gồm một vài quy tắc cơ bản và theo quy ước. Tên sẽ là một từ mà chưa tồn tại trong ActionScript, nó sẽ bắt đầu với một ký tự chữ cái (hơn là một số hay ký tự khác), và nó là loại chữ in hoa. Class phải là public, nghĩa là các lớp khác có thể truy cập tới constructor, và nó phải mở rộng từ MovieClip hay Sprite, như đã thể hiện ở trước đó. Dòng 7, cùng với dấu kết thúc ở dòng 9, là constructor lớp. Đây là hàm chính mà tự động
  12. chạy khi tạo một trường hợp của lớp này. Nó cũng phải public và phải cùng tên với lớp. Các hàm khác (nếu có) có thể, và phải, có các tên duy nhất. Toàn bộ những cái còn lại là được thêm vào các phương thức riêng lẻ được yêu cầu trong trường hợp này. Constructor phải đưa “Flash” ra Output panel, bởi vậy thêm dòng dưới này vào dòng 8: 7 public function Main() { 8 trace("Flash”); 9} Khi được kết thúc, bạn phải save file trong cùng một thư mục file FLA của bạn ngay bây giờ. (Sau đó, bạn sẽ học cách làm thế nào để đặt các file trong các vị trí khác.) Bạn phải cho file cùng tên với lớp, nhưng thêm .as làm phần mở rộng. Cho nên, file này sẽ được đặt tên là Main.as. Bây giờ tạo một file FLA mới, chọn ActionScript 3.0 với phiên bản ngôn ngữ lập trình của nó, và save nó trong cùng thư mục trước đó bạn đã tạo file class. Tên của FLA là không quan trọng. Cuối cùng, mở Proterties Inspector và thêm tên document class của bạn, không phải tên của chính document đó. Trong trường hợp này, gõ vào Main thay vì gõ vào Main.as, giống như hình 1-1. Hình 1-1 thêm một document class vào FLA của bạn. Bây giờ xem trước file của bạn. Cũng sẽ tạo một trường hợp của class Main (nó mở rộng từ MovieClip và, bởi vậy, chạy giống như một movie clip) và thêm nó vào danh sách hiển thị. Lớp sẽ đưa “Flash” ra output panel, và kiểm tra ứng dụng của bạn sẽ hoàn thiện. Trong tương lại, bạn có thể cố gắng code timeline của chúng ta trong document class theo riêng bạn. Ban đầu, bạn chắc sẽ không biết các lớp đó cần import hay làm thế nào tạo bất cứ sự thay đổi nào có thể cho các biến hay các cấu trúc tương tụ để tuân theo cú pháp của lớp. Tuy nhiên, toàn bộ code ví dụ sẽ luôn đi cùng với các class để kiểm tra. Bạn có thể sử dụng các file này bất cứ lúc nào bạn muốn cho tới khi bạn có được định dạng cho document class. 5. Tính tương thích của code Tôi muốn kết thúc chương này với một sự báo trước nho nhỏ. Bạn không thể pha trộn code ActionScript 1.0 hay 2.0 với code ActionScript 3.0 trong cùng SWF. Bạn không thể làm được điều này nếu bạn đang học từ đầu, nhưng bạn có thể chạy trong hoàn cảnh này nếu bạn cố gắng update các project để lại bằng việc thêm vào code ActionScript 3.0. Nếu bạn cần chạy một hỗn hợp rời rạc ActionScript 3.0 và phiên bản trước đó của ngôn ngữ, như là một di sản bên trong một vỏ giao diện mới, bạn có thể làm điều đó bằng cách loading một SWF. Một file ActionScript 3.0 có thể load một SWF đã được tạo trong ActionScript 1.0
  13. hay 2.0, nhưng nó không thể truy cập được các biến hoặc hàm cũ của SWF. Do ý định và mục đích, cùng là không đúng trong quá trình đảo ngược. Một SWF cũ không thể load một SWF ActionScript 3.0. Trong chương 13, chúng ta sẽ thảo luận làm thế nào để truyền thông giữa sự riêng biệt của các SWF sử dụng trong quá trình xử lý cụ thể. Bây giờ, tuy nhiên, chỉ nhắc nhở chính bạn một lần nữa đó là bạn không thể phối hợp ActionScript 3.0 với các phiên bản của ngôn ngữ trong cùng một file. Những gì tiếp theo? Bây giờ bạn đã biết một chút về ActionScript 3.0 và Flash Platform, nó là một thời gian để xem các cái cơ bản của ngôn ngữ. Bằng cái nhìn tổng quan các khái niệm phiên bản độc lập khi bắt đầu, chúng ta có thể tập trung vào cú pháp mới trong các chương sau. Nếu bạn có nhiều kinh nghiệm với ActionScript 1.0 hay 2.0, bạn có thể bạn muốn bỏ qua tài liệu này. Trong chương tiếp theo, chúng ta sẽ thảo luận: Các khái niệm cơ bản mang đến cho bạn một tốc độ nhanh hơn, bao gồm việc sử dụng phương thức trace() như là công cụ chuẩn đoán để xem phản hồi tức thời từ script của bạn. Sử dụng các biến để lưu dữ liệu, bao gồm các mảng và các đối tượng tùy ý mà cho phép bạn dễ dàng quản lý thêm các giá trị, và loại dữ liệu của các dữ giá trị này để cải thiện các thông báo lỗi. Các cấu trúc logic như là các điều kiện để quyết định làm và các vòng lặp cho việc đơn giản hóa các nhiệm vụ lặp đi lặp lại. Các hàm mà có thể tách biệt code bên trong các khối thuận tiện điều đó sẽ chỉ được thực hiện khi được chỉ dẫn. Các cách định địa chỉ các đối tượng Flash với ActionScript, bao gồm sử dụng các đường dẫn tương đối hay tuyệt đối, và lối tắt định nghĩa là “this”.
  14. Chương 2: Các nguyên tắc cốt lõi của ngôn ngữ cơ bản Trong chương này: -Nhiều thể khác nhau cơ bản -Các biến và các kiểu dữ liệu -Các điều kiện. -Các vòng lặp. -Mảng. -Hàm. -Các đối tượng tùy chọn. -Từ khóa this. -Địa chỉ tuyệt đối và tương đối. -Những gì tiếp theo? Nó là một sự thật rằng ActionScript 3.0 là một bản viết lại hoàn thiện của ngôn ngữ kịch bản bên trong của Flash, và nó cũng đúng là ActionScript 3.0 không chia xẻ cùng môi trường code cơ bản như các phiên bản trước của ActionScript. Nhưng đó là toàn bộ ở đằng sau các scene. Sự thật là, toàn bộ các version của ActionScript tới nay nói chung chia xẻ khá ít. Điều đó không để nói rằng ngôn ngữ đang không có sự phát triển. Tất nhiên, mỗi version mới của ActionScript giới thiệu một lô các đặc trưng mới được cung cấp, là đúng với sự tiến triển của hầu hết các ngôn ngữ. Và, khi sự giải quyết là viết lại ActionScript 3.0 từ đầu, tận dụng chính điều hiện tại này để sắp xếp gọn gàng (tidy up) một vài thứ hỗn độn (messy) mà vẫn tồn tại từ những version trước đó như: tên, nghiêm ngặt hơn, và yêu cầu thực hiện tốt nhất như là các tùy chọn, và sự tổ chức lại event và hệ thống hiển thị. Toàn bộ sự phát triển này, tuy nhiên, không loại bỏ trên các chuẩn mà ActionScript đã từng dựa lên, và hầu hết cơ bản ngôn ngữ giữ nguyên không bị ảnh hưởng. Với mục đích tập trung trên các tùy chọn mới ActionScript 3.0 giai đoạn sau, chúng tôi muốn bao hàm một vài thứ của các nguyên tắc quan trọng hơn lên trước. Chúng tôi không có ý định không để ý tới các khái niệm này trong phần còn lại của cuốn sách. Tuy nhiên, bởi vì chúng là các nguyên tắc cốt lõi, bởi vậy, được sử dụng thường xuyên, chúng tôi hy vọng giải thích chúng đủ chi tiết ở đây và sử dụng ít thời gian nhất cho chúng khi chúng ta tiến hành. Nếu bạn đã thoải mái với ActionScript và đang đọc văn bản này để bắt đầu học version 3.0, bạn có thể muốn giữ lại, hay chí ít là đọc lướt, chương này. Nó là bởi không có nghĩa là một sự bao hàm toàn điện cho sự bắt đầu một khóa học. Cuốn sách này không thừa nhận rằng bạn là người từng trải (versed) với mọi phiên bản trước đó của ActionScript, nhưng quy mô và mục đích cần chúng ta nắm lấy mọi sự hiểu biết cơ bản của các khái niệm script tổng quát. Nếu bạn chưa sẵn sàng, vui lòng xem trên Lời giới thiệu để có ý tưởng tốt về việc cuốn sách này danh cho ai, cũng như một vài tham khảo khác nếu bạn cần thêm thông tin cần thiết để hiểu vấn đề. Bạn có thể sử dụng chương này, tuy nhiên, cái cần tập trung tham khảo khi khác khá niệm lập trình cần được giải thích. Trong trang này, chúng ta sẽ xem xét những chủ đề sau: • Các thể khác nhau cơ bản. Để nhận biết một vài mục và kỹ thuật được sử dụng trong toàn
  15. bộ cuốn sách là không đảm bảo cần thiết cho mỗi mục, chúng tôi sẽ bắt đầu với một vài yếu tố cần thiết (essential). • Các biến và các kiểu dữ liệu. thông tin phải được lưu trữ trong những cái chứa đựng được gọi là các biến nếu nó được gọi lại để sử dụng sau đó, và sự khai báo mà kiểu của dữ liệu sẽ được lưu trữ trong mỗi biến có thể giúp Flash kiểm tra các lỗi trong khi phát triển. • Các điều kiện. Trong nhiều trường hợp, khi một quyết định phải làm trong khi (in the course of) một sự thực thi của script, một điều kiện được sử dụng để đánh giá (evaluate) kết quả (outcome) của một quy định thiết lập của các điều kiện. Chúng ta sẽ xem các mẫu điều kiện if và switch. • Các vòng lặp. Khi bạn phải thực thi trong một chỉ lệnh trong nhiều lần, nó đôi lúc có ích để làm trong một cấu trúc vòng lặp. Chúng ta sẽ xem cấu trúc vòng lặp for được sử dụng thông thường, nhưng đồng thời nhiều khả năng để các vòng lặp rõ ràng, kể cả frame và các event timer. • Mảng. trong khi một biến có thể chứa đựng chỉ một giá trị đơn giản, nó có khả năng thường xuyên, hay thậm chí cần thiết, để lưu trữ hơn một giá trị trong một biến. Hình dung một danh sách các hàng hóa, với một vài mục, được viết trên một mảnh giấy đơn giản. Mảng là một cấu trúc dữ liệu mà cho phép bạn lưu trữ nhiều giá trị trong một biến. • Hàm. Hàm là yếu tố cần thiết cho nhiều ngôn ngữ lập trình, và cho phép bạn thực thi code chỉ khi bạn đã sẵn sàng để làm như vậy, và sử dụng lại code đó có hiệu quả. • Các đối tượng tùy chọn. Một đối tượng tùy chọn có thể xem xét như một loại biến đặc biệt mà cho phép bạn lưu trữ nhiều thông tin, một cách dễ dàng và nhất quán để truy lục dữ liệu. Các đối tượng cũng có thể rất hữu ích cho sự đơn giản hóa các nhiệm vụ của việc truyền nhiều tham số giá trị tùy ý vào một hàm. • This. Từ khóa this được sử dụng như một tham chiếu nhanh (shorthand), ý nghĩa cơ bản của đối tượng hay phạm vi trong một script. Điều này sẽ trở nên rõ ràng trong tình huống, nhưng việc hiểu từ khóa làm việc thế nào có thể giữ lại cho bạn nhiều sự lặp lại và giảm bớt sự cần thiết cho các tham chiếu phức tạp trong các script của bạn. • Địa chỉ tuyệt đối và tương đối. ActionScript có thể tham chiếu các địa chỉ tới các đối tượng của nó sử dụng các đường dẫn tuyệt đối, như sự bắt đầu từ timeline gốc và kể cả mọi đối tượng giữa nó và cái đích của bạn, hay các đường dẫn tương đối, như đi từ một cái gốc (cha) và xuống dưới là các anh em, không có vấn đề là bạn ở đâu. Lần nữa, chương này không có nghĩa là chỉ thực hiện chỉ sự tham khảo để mang đến cho bạn sự nhanh nhất nếu bạn hoàn toàn không có chút kinh nghiệm nào với ActionScript. Nó sẽ giống như cung cấp những phần chính bạn cần như các cơ bản khác – như ở đây script được lưu trong Flash – đã được bỏ qua một số lý do. Như được diễn tả trong phần giới thiệu, để bắt đầu một cuốn sách trên Flash, chúng tôi đề nghị Flash CS3 Professional, The Missing Manual, được xuất bản bởi O’Reilly, nhà xuất bản cuốn sách này. Tài nguyên để hoàn thiện thêm ActionScript, chúng tôi thành thật khuyên bạn sử dụng Essential ActionScript 3.0 bởi Colin Moock, cũng được xuất bản bởi O’Reilly. Sau đó quyết định tham khảo từ trung bình tới nâng cao, nhưng gần như ba khoảng thời gian kích cỡ của cuốn sách, nó cũng về căn bản hoàn thiện hơn. Toàn bộ các phần, chương này, cùng với bối cảnh và bổ sung sự giải thích được trình bày sau các chương, sẽ cung cấp cho bạn đủ hiểu các chủ đề và có các ví dụ đang làm việc.
  16. 1. Nhiều thể khác nhau cơ bản Một vài chủ đề hầu như chắc chắn không đòi phần được dành cho để bàn luận về chúng nhưng sẽ vẫn đề cập thích đáng để chúng sử dụng trong toàn bộ cuốn sách. Chúng tôi sẽ gồm cả một vài ví dụ ở đây, chỉ có khi đã có sự bắt đầu của chúng tôi. Sự thi hành tuần tự Phổ biến, ActionScript thực thi từ trên xuống dưới, từ trái sang phải theo thứ tự, mỗi dòng thực thi nó sau đó cái khác, sự làm việc từ trái qua phải. Một vài thứ có thể thay đổi thứ tự trong một số cách tinh tế, nhưng nó cơ bản là các quy tắc đáng tin cậy. Ví dụ, nguyên nhân sự thực thi theo trình tự của script nguyên bản để dừng trong khi thủ tục nhỏ đang được thực hiện. Khi thủ tục con đã hoàn thành, sự thực thi của script nguyên bản tiếp tục từ bên trái của nó. Các bước này sẽ được giải thích trong tình huống, trong toàn bộ script của cuốn sách này. Sử dụng dấu ; Chính thức sử dụng dấu chấm phẩy trong ActionScript là để thực thi hơn một lệnh trên một dòng đơn. Điều này là hiếm có trong script thông thường, và chúng tôi sẽ xem kỹ thuật này khi bàn luận tới các vòng lặp. Tuy nhiên, dấu chấm phẩy cũng được sử dụng để cho biết sự kết thúc một dòng. Điều này không đòi hỏi, nhưng nó được đề nghị cho sự rõ ràng và dễ dàng có thể chuyển sang học các ngôn ngữ khác mà dấu chấm phẩy là kết thúc một dòng được đòi hỏi. Sự đánh giá một biểu thức Nó giúp ích để chú ý rằng bạn thường thường không giải một phương trình khi thấy một biểu thức với các giá trị giống nhau bên trái và bên phải của dấu bằng. Ví dụ nếu bạn thấy một vài thứ giống như x = x + 1, nó không giống như bạn giải phương trình để tìm giá trị x, dòng này là sự gán một giá trị mới vào x bằng cách cộng thêm 1 vào giá trị trước đó của nó. Sử dụng lệnh trace Nghĩa là có sự phản hồi nhanh, trong một ví dụ, hay như một kỹ thuật kiểm tra và sự gỡ rối khi đang viết các script, nó rất hữu ích để sử dụng lệnh trace. Lệnh này đặt các text liên quan ra Output panel của giao diện Flash. Hiểu một cách nôm na là, điều này là một tùy chọn chỉ có thể sẵn dùng tại thời gian đó, không sử dụng tại runtime. 2. Các biến và các kiểu dữ liệu Các biến là sự thể hiện tốt nhất như là các cái chứa đựng trong cái mà bạn thay thế thông tin cho những lần gọi sau. Hình dung nếu bạn không lưu trữ mọi thông tin cho lần sau sử dụng. Bạn không thể sửa lại các giá trị đã được mô tả các thông tin trước đó (như là tên của những người dùng hay các mật khẩu), các script của bạn sẽ chịu đựng một sự thực hiện khó khăn theo cách lặp lại những cái không cần thiết cho tính toán, và bạn sẽ không thể mang những kinh nghiệm để thực hiện những bổ sung tiếp theo cho một nhiệm vụ. Tổng quát, bạn sẽ không thể làm bất cứ yêu cầu dữ liệu nào cho ứng dụng của bạn để “nhớ được”. myVariable = 1; Đó chỉ là một vài quy tắc và sự thực hành tốt để xem xét tên các biến khi nào. Chúng có thể
  17. chỉ là mộ từ, có thể gồm cả các ký tự alpha dài với kí hiệu dollar ($) hay dấu gạch dưới (_), nó không bắt đầu bằng một số, và không là một từ khóa hay từ dành riêng trong ActionScript Để chắc chắn giúp bạn sử dụng các biến thích hợp, ActionScript sẽ theo dõi chúng và cảnh báo cho bạn nếu bạn cố gắng thi hành một hành động không thích hợp trên chúng, mặt khác khi sử dụng chúng không đúng. Ví dụ, nếu bạn cố gắng thi hành một phép toán học trên một đoạn text, Flash sẽ đưa ra một cảnh báo để bạn có thể chỉnh đúng vấn đề. Để làm điều này, Flash phải chỉ ra những gì bạn muốn lưu trữ trong mỗi biến. Điều này được hoàn thành bởi việc khai báo biến trước khi sử dụng nó với từ khóa var, và đưa ra kiểu dữ liệu để lưu trữ trong đó bởi đi theo sau tên của biến với một dấu (:) và kiểu dữ liệu. Cụ thể, ví dụ trước đây để ghi nhớ số 1 phải viết như thế này: var myVariable:Number = 1; Đó là bao gồm một vài kiểu dữ liệu, nhưng được giới hạn, chúng được liệt kê trong bảng 2-1: Bảng 2-1. Các loại biến. Kiểu dữ liệu Ví dụ Diễn tả -------------------------------------------------- Number 4.5 Bất cứ số nào, bao gồm cả giá trị số thực. int -5 Là số nguyên uint 1 Là số nguyên không âm. String “hello” Text hay một xâu các ký tự. Boolean true Có giá trị true hay false. Array [2, 9, 17] Lưu hơn 1 giá trị trong một biến. Object myObject Cấu trúc cơ bản của toàn bộ ActionScript, nhưng cũng là mẫu tùy chọn từ đó có thể được sử dụng để lưu nhiều giá trị như là một mảng. Cũng có nhiều sự thêm vào các kiểu dữ liệu mà diễn tả các class được sử dụng trong biến. (như đã thảo luận trong Chương 1, nghĩ rằng các class như là các script ở bên ngoài mà điển hình là tra lại thông tin cho script của bạn và làm việc như các số của một tổ hợp lớn để tạo ứng dụng của bạn ). Ví dụ, dòng code sử dụng class MovieClip (xây dựng trong Flash) để tạo một MovieClip tại runtime: var myMC:MovieClip = new MovieClip();
  18. Nó là không thực tế để có thể liệt kê toàn bộ các kiểu dữ liệu ở đây, nhưng chúng tôi sẽ tham khảo các kiểu dữ liệu thường xuyên trong toàn bộ cuốn sách, và nó sẽ trở thành bản năng thứ hai để sử dụng chúng. Trong các phiên bản trước của ActionScript, sự khai báo và kiểu dữ liệu các biến là tùy ý. Tuy nhiên, trong ActionScript 3.0, điều này thực hiện là bắt buộc. Điều này có thể cảm thấy cồng kềnh nhưng chẳng bao lâu nữa, điều này sẽ trở thành bản năng thứ hai, và bạn sẽ có được sự đánh giá đúng về các trường hợp lỗi ngay lập tức và cung cấp các đặc điểm phản hồi này. Như chúng tôi bắt đầu đi xâu hơn trong cuốn sách, bạn sẽ học được các biến đó áp dụng cho toàn bộ phạm vi (thực ra là nơi mà biến đó tồn tại, như là timeline chính của Flash, hay các class cụ thể) hay là vị trí để các cấu trúc code cụ thể. Chúng ta sẽ trao đổi điều này trong các code ví dụ. Chú ý: Trong toàn bộ cuốn sách, các code ví dụ code là cú pháp được đánh màu tương tự như trong giao diện màu scripts trong Flash. Điều này giúp cho nhận dạng các mục như là cá phần của từ vựng ActionScript (như là từ khóa và các định danh) và làm chúng dễ dàng để xem các lời bình luận (diễn tả các đoạn văn bản mà không thực thi) và các string. 3. Các điều kiện Bạn sẽ thường cần để làm để giải quyết trong script của bạn, sự chọn lựa để làm một cái gì dưới một tình huống, và cái khác cho một tình huống khác. Những trạng thái này luôn được đặt bởi các điều kiện. Đơn giản là, một kiểm tra được tạo, hỏi điều một điều kiện là đúng. Nếu điều kiện là đúng, các giá trị kiểm tra là true, và do đó code cụ thể được thực thi. Nếu điều kiện không đúng, những hành động khác được thực hiện hay xen kẽ code được thực thi. if Hầu hết các mẫu phổ biến của điều kiện là câu lệnh if. Cấu trúc cơ bản của câu lệnh là từ khóa if, được đi theo sau bởi các dấu ngoặc đơn trong đó có các điều kiện để kiểm tra, và các dấu ngoặc móc bên trong đó để thực thi các câu lệnh khi mà giá trị của câu lệnh trả về true. Ba dòng đầu tiên trong ví dụ thiết lập một sự kiện. Giá trị câu lệnh if cho các sự kiện.(giá trị ban đầu thiết lập các sự kiện sẽ được sử dụng cho điều này và các ví dụ sau trong phần này). var a:Number = 1; var b:String = "hello"; var c:Boolean = false; if (a == 1) { trace("option a"); } Để đánh giá sự đúng đắn của kiểm tra bên trong ngặc đơn, các điều kiện thường sử dụng các toán tử so sánh và logic. Toán tử so sánh để so sánh hai giá trị, như là bằng (==), nhỏ hơn (=), một vài trường hợp nữa. Một toán tử logic đánh giá sự đúng đắn của biểu thức. Bao gồm trong cái này là AND (&&), OR (||), và NOT (!). Điều này cho phép bạn phát biểu if (điều này and điều đó) là đúng, hay if “điều này hoặc điều đó” là đúng, hay if”điều này” không đúng. Ví dụ, sau đây sẽ cho giá trị là false, bởi vì cả hai điều kiện là không đúng. Như kết quả, không có gì trace ra trong Ouput panel.
  19. if (a == 1 && b == "goodbye") { trace("options a and b"); } Trong ví dụ này, sự kiểm tra sẽ đánh giá đúng, bởi vì một trong hai điều kiên (cái trước tiên) là đúng. Như kết quả “option a or b” sẽ được trace. if (a == 1 || b == "goodbye") { trace("option a or b"); } Cuối cùng, sau đây cũng sẽ trả về giá trị đúng, bởi vì toán tử NOT đúng khi mà giá trị c xác định là không đúng. (Nhớ rằng, đó là câu lệnh if, cốt lõi của nó, là kiểm tra giá trị đúng ). if (!c) { trace("not option c"); } Toán tử NOT cũng được sử dụng như một phần của toán tử so sánh. Khi mà phối hợp với một dấu bằng, cả hai nghĩa là, “không bằng”. Bởi vậy, sau đây sẽ là sai bởi vì a bằng 1, và không có gì được trace. if (a != 1) { trace("a does not equal 1"); } Sự thêm vào khả năng có thể được thêm vào câu lệnh if bằng cách thêm vào một lựa chọn vô điều kiện khác ( đúng không cho vấn đề gì), sự lựa chọn thiết lập code được thực thi không cho vấn đề mà giá trị đã được kiểm tra, đơn giản bởi vì kiểm tra không được thông qua. Với code mới như sau được thêm vào ví dụ trước, sự trace cuối cùng sẽ xảy ra. if (a != 1) { trace("a does not equal 1"); } else { trace("a does equal 1"); } Cuối cùng, câu lệnh có thể chỉ thiết thực bằng sự thêm vào một điều kiện lựa chọn khác (hay thêm một kiểm tra), để cấu trúc. Trong ví dụ này, sự trace thứ hai sẽ xảy ra. if (a == 2) { trace("a does not equal 1"); } else if (a == 1) { trace("a does equal 1"); } Lệnh if được yêu cầu chỉ có if, chỉ một lựa chọn else có thể được sử dụng, và mọi số kiểm tra else if thêm vào có thể được sử dụng. Trong toàn bộ các trường hợp, tuy nhiên, chỉ một kết quả có thể thực hiện từ cấu trúc đó. Xem xét ví dụ sau, trong ba kết quả có khả năng thực hiện – là cái đầu tiên và thứ hai chúng là đúng, và cái cuối cùng vì nó không là một trường hợp nào khác. if (a == 1) { trace("option a"); } else if (b == "hello") {
  20. trace("option b"); } else { trace("option other"); } Trong trường hợp này, chỉ “option a” có thể xuất hiện trong Output panel bởi vì trước tiên sẽ kết thúc cấu trúc if. Nếu bạn cần thêm hơn một sự thực thi xảy ra, bạn sẽ cần sử dụng hai hay nhiều hơn các điều kiện. Cấu trúc sau, là ví dụ, sự thực thi trước tiên trace trong mỗi if, bởi sự thiết kế này. if (a == 1) { trace("option a"); } if (b == "hello") { trace("option b"); } else { trace("option other"); } Chú ý: Sự kiểm tra trong ví dụ sử dụng một cặp dấu bằng. điều này là toán tử so sánh hỏi rằng, “điều này có bằng?”. Sự khác biệt này là vô cùng quan trọng bởi vì ngẫu nhiên sử dụng một dấu bằng sẽ là nguyên nhân đưa ra kết quả không ngờ tới. Một dấu bằng là một toán tử gán và gán bằng giá trị bên phải của biểu thức cho đối tượng ở bên trái của biểu thức. Bởi vì sự gán này xuất hiện, nên sự kiểm tra sẽ luôn luôn trả lại giá trị là true. switch Một lệnh if có thể thực hiện đơn giản hay sự phức tạp nếu cần. Tuy nhiên, cấu trúc if dài có thể gây khó khăn để đọc và có thể đôi lúc sẽ tốt hơn khi sử dụng câu lệnh swith. Thêm nữa, câu lệnh sau có một đặc trưng là cho phép bạn điều khiển nhiều cấu trúc lệnh if được thực thi – khi mà giá trị kiểm tra là sai. Hình dung một lệnh if hỏi rằng nếu giá trị a là 1, else if là 2, else if là 3, else if là 4, và ... Sự kiểm tra giống như vậy có thể trở nên khó khăn để đọc nhanh. Một cấu trúc lựa chọn xuất hiện như sau: switch (a) { case 1 : trace("one"); break; case 2 : trace("two"); break; case 3 : trace("three"); break; default : trace("other"); break;
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2