Nếu bạn là một newbie bạn sẽ học Flash như thế nào?

February 19, 2010 by · Leave a Comment 

(bài viết trích từ blog Linhdoha. http://linhdoha.wordpress.com)

Đúc rút từ những gì quan sát được từ trước tới giờ trên VNFX và cả ở những người quen khác bên ngoài, mình có một vài lời dành cho các bạn tự học Flash, hy vọng các bạn sẽ tiến nhanh và tiến xa hơn nữa. Flash là một nền tảng rất thú vị, đừng lãng phí những gì bạn học được.

  • Nếu xuất phát từ đam mê vì thấy Flash làm được nhiều điều thú vị quá. Cách học của bạn thường là từ việc tìm tòi các sản phẩm hay và đẹp. Rồi sau đó tìm cách decompile (dịch ngược) ra file nguồn, và cứ thế bạn làm chủ dần dần các kỹ thuật đó. Điểm chung của các bạn học Flash theo cách này đa phần đều có hiện tượng làm “nhái” sản phẩm- có thể là đạo lại một chút, cũng có thể là làm ra một sản phẩm tương tự. Với cách học này nhiều khi bạn chưa hiểu hết các vấn đề mà chỉ đơn giản làm mẫu. Tuy nhiên sản phẩm “thí nghiệm” đó của bạn lại là một sản phẩm hoàn thiện cho nên sẽ rất thôi thúc cảm giác muốn khoe. Tôi không nói gì về tư cách vì ngẫm cho cùng chúng ta vẫn đang học những lời cổ vũ khích lệ trong quá trình tìm tòi học hỏi là vô cùng cần thiết. Nhưng nói đi cũng phải nói lại, đôi khi hành động lật tẩy của những người khác cũng giúp cho bạn hiểu rõ hơn hiện giờ bạn đang ở đâu, sự thực bạn chỉ mới bắt đầu và hãy đừng nản chí.
  • Những nấc thang trình độ mà bạn sẽ phải vượt qua. Có những bạn thích Flash lắm nhưng tại sao tự học mãi mà vẫn không “lên trình” được? Rất dễ trả lời, bởi vì không phải ai cũng có lộ trình sẵn trong đầu, đơn giản học để thỏa mãn lòng yêu thích. Nhưng học như thế thì bạn sẽ khó có thể vươn tới bất cứ điều gì. Có một lộ trình căn bản mà tôi tham khảo được nhiều người đồng tình mà có thể giúp ích được cho bạn:
    • Animation căn bản- hướng đến làm được các sản phẩm Thiệp điện tử, clip nhạc tặng bạn bè.
    • Animation nâng cao với các kỹ thuật làm mượt chuyển động và hiệu ứng đẹp mắt kết hợp với các đoạn code điều khiển timeline- hướng đến làm được các mô phỏng thí nghiệm hoặc tài liệu giáo dục như đĩa CD dạy học có kèm theo bài tập dạng trắc nghiệm…
    • Lập trình căn bản- hướng đến làm được một gallery ảnh được load từ ngoài qua một file XML.
    • Lập trình nâng cao- hướng đến cách lập trình tương tác, các sản phẩm có thể là các UI component tự viết cũng có thể là lập trình game.
    • Hướng đến chuyên nghiệp- lúc này sản phẩm của bạn là bất cứ thứ gì, nhưng bạn cần phải nhìn lại cách viết code của mình ví dụ hồi AS2 thì mọi người nhắc nhau chuyển sang kỹ thuật lập trình OOP- lập trình hướng đối tượng (cám ơn anh Dominic đã là người tiên phong :) ). Giờ đây OOP dường như là cái không thể không biết với AS3, bạn có thể tìm hiểu mô hình MVC, cân đối cách lập trình tối ưu, học thêm về design parttern, UML …
    • Chuyên gia giải pháp – Trình độ và kỹ năng bạn có rồi, vậy còn điều gì thiếu sót nữa nhỉ? Bạn nên nhớ, công nghệ thay đổi theo từng ngày, và chúng ta phải luôn bám sát để cập nhật những thứ mới lạ nhất. Trên thực tế khi đi làm, đòi hỏi của công việc đa phần là không cần đến những kỹ thuật mới nhất. Tuy nhiên đến khi ta chạm phải giới hạn của Flash, việc cập nhật kiến thức có ý nghĩa rất to lớn. Giả sử hồi Flash Player mới ra chức năng ghi file từ phía client, làm chức năng chụp ảnh “hàn quốc” chẳng hạn. Trong khi những người khác thì vẫn theo cách upload file lên server để ghi ra file rồi mới download về máy thì bạn lại áp dụng kỹ thuật mới, đó chính là điểm khác biệt đáng giá chính là ở chỗ đó :) .
  • Có những thứ bạn không thể tự học được. Đối với những bạn học Flash xuất thân từ chuyên ngành công nghệ thông tin việc tiếp cận với Flash đã là khó, và đối với những bạn trái ngành còn khó hơn. Có những kỹ thuật mà họ mãi không thể hiểu và muốn hiểu thì phải học một đống kiến thức mới… cả những phương pháp luận về nguyên lý client-server, nào thì khái niệm socket, XML là gì đôi khi nhiều bạn vẫn hiểu sai mặc dù đã dùng được nó? Vậy làm thế nào để có thể vượt qua? Chắc chỉ có cách join vào cộng đồng những người làm Flash để mà hỏi thôi. Bạn có thể làm gì?
    • Tham gia vào một diễn đàn Flash, việc tham dự thảo luận hay lắng nghe hoàn toàn là do bạn chủ động.
    • Tham gia vào một mail group về Flash bàn tán và lắng nghe nhau, mọi thông tin đều gửi trực tiếp đến mail bạn do đó thông tin chủ động tìm đến bạn hơn.
    • Hỏi đáp qua Twitter với những người trong cộng đồng Flash cũng là một ý tưởng không tồi, câu hỏi của bạn broad cast cho tất cả nghe thấy, ai rảnh thì họ trả lời tránh việc hỏi trực tiếp một ai đó gây phiền cho họ.

Tạm thời mới nghĩ được có thế, các bạn nào có ý kiến phản hồi thì cứ thoải mái nói ra nhé. :)

hieusua :

Theo mình nghĩ, có hai hướng tiếp cận chính tới Flash Platform. Đó là hướng designer và hướng developer.

Hướng designer: Chủ yếu tương tác trực tiếp với người dùng, đem lại nhiều trải nghiệm mới. Designer thì thật sự không cần phải code nhiều, cũng như không chuyên sâu vào OOP / Design Patterns / Framework (MVC)… Chủ yếu có kiến thức về design như phối màu, kết hợp animation và effect, sử dụng thành thạo các công cụ và thư viện do dev làm, khả năng phân tích… (cái này mình suy ra hồi mình học Photoshop, ví dụ nhìn vào một photo thì phải chia nó ra thành bao nhiêu lớp, rồi dùng filter gì, v.v…)

Hướng developer: xây dựng nền tảng phía dưới cho designer. Developer tạo thêm nhiều công cụ mới cho designer sử dụng, thiết kế kiến trúc cho 1 flash app nhỏ, hay cấu trúc mỗi module cho 1 flash app lớn. Vì thế, developer cần phải hiểu rõ mô hình flash và sử dụng thuần thục ngôn ngữ lập trình flash (actionscript), cộng thêm các kiến thức về phân tích thiết kế và lập trình hướng đối tượng (hướng chủ đạo bây giờ của flash). Một kỹ năng cần có nữa của dev là tối ưu code như bạn đã liệt kê.

Trong phần “Có những thứ bạn không thể tự học được” xin bổ sung thêm: 3 lựa chọn bạn đưa ra thật ra có thể quy vào 1: Kết nối cộng đồng. Cộng đồng thì chỉ đưa ra cho bạn giải pháp cho từng trường hợp cụ thể (kinh nghiệm). Còn các bạn nào muốn hiểu tường tận thì nên tham dự một khóa đào tạo chuyên sâu. Khi còn học đh mình cảm thấy kiến thức dạy trong đó thật nhảm nhí (vì không ứng dụng được ngay), nhưng bây giờ nó giúp mình học hỏi công nghệ mới rất nhanh :)

hallo patidu:

thank for all !

Ngắn gọn về các phần tử MVC

September 25, 2009 by · Leave a Comment 

MVC (Model – View – Controller) ở quy mô nhỏ, nó được sử dụng như một dạng của thiết ké mẫu (design pattern). Ở quy mô lớn hơn, nó thuộc phạm trù kiến trúc phần mêm (architectural pattern).

Đặc tính và yêu cầu của Model – View – Controller (MVC)

Model (tượng trưng cho dữ liệu của chương trình)
.Chứa dữ liệu,giá trị lưu hoặc có thể là các hàm thực thi điều khiển trực tiếp hành động nào đó.
.Phải được code sao cho tồn tại độc lập với View và Controller
View (các thành phần liên quan tới giao diện người dùng)
.Các đoạn code có ảnh hưởng tới phần hiển thị trực quan với người dùng (giao diện) .
.Sử dụng dữ liệu lấy từ mode để vẽ ra haythay đổi chính nó.
.Chỉ bao gồm các phần tử (hàm,biến… ) cho việc hiển thị giao diện và một chút logic cần thiết để đọc dữ liệu từ Model.
Controller (quản lý sự trao đổi giữa dữ liệu và các thao tác liên quan đến Model)
.Chịu trách nhiệm truyền tải các giá trị nhập liệu và cập nhật Model và View nếu cần thiết.

Mối quan hệ giữa 3 phần tử MVC

.Phần tử Model phải phải độc lập với các phần tử còn lại View và Controller. (Keynote)
.Model chỉ gửi các thông điệp mà không cần biết là ai đang lắng nghe sự kiện đó (View và Controller).
.Phần tử View luôn phải biết về Model (ở dạng luôn có tham chiếu tới Model).
.View tương tác với Model qua 2 cách:
- Lắng nghe các thông điệp được gửi đi.
- Đọc trực tiếp từ Model.
. Phần tử View không bao giờ ghi, lưu gì vào Model.
. Một Model có thể đóng vai trò là Model cho nhiều View.
.View tự cập nhật và thay đổi trạng thái dựa trên các thay đổi được chuyển tới Model    (Keynote)
.Controller luôn biết về model (ở dạng luôn có tham chiếu tới Model).
.Controller chịu trách nhiệm cập nhật cho Model.

Fonts for use in TextFormat and CSS

September 1, 2009 by · Leave a Comment 

I regularly have problems embedding fonts in my SWF files. There are a variety of different ways to embed fonts; many of which are detailed in the documentation. I am going to show my preferred way to embed fonts that solve many of the problems are arise when embedding fonts in other ways.

One of the biggest issues that I have run into is making a font available for use in both a .css file and in a TextFormat object. It is difficult for me to reference a font that is embedded in a .css file from an AS3 code line that is setting the properties of a new TextFormat object, for instance. This solution also works with both projects that use the mx.core.* framework (a Flex Project) and also pure AS3 projects. This solution works with BitmapFonts like the ones you might find on http://www.fontsforflash.com/.

The solution involves making a Fonts.as class that embeds the font definitions and registers them with the global Font object. This enables referencing of fonts by name from anywhere within your application – CSS, AS3, or MXML files. I like to make a Flex Library project to hold all the font information. This allows me to use the same embed code for multiple project – and if desired – make the font.swc into an RSL for runtime sharing between multiple SWFs on your Web site. You could potentially also achieve runtime loaded font definitions with this method – but that is a story for a different day. Read more

Flex 3 Beyond the Basics

August 27, 2009 by · Leave a Comment 

NOTE: Our free movies below will get you started (QuickTime® 7.5 or newer is required).

Read more

Game Flash trên Facebook – HAFUG809

August 24, 2009 by · 1 Comment 

Slide trình chiếu từ hội thảo HAFUG809
Người trình bày : Phạm Tiến Dũng (me)