For the longest time I really wanted to strengthen my programming knowledge with not just Flex / Flash Design but I wanted to code with more advanced Object Oriented Programming or (OOP) and Architecture techniques that would compliment my design background.
Currently I have been doing both Flash Game Design and Flash Game Development for a while now, and I have really learned a ton about programming and development and how to deliver those games in a very fast paced high profile production environment. But as things in our industry are always changing at a rapid pace, I always try to constantly learn new ways of doing things, seeing things in new ways and refining past techniques see also: (Code Architecture Wisdom - Grant Skinner). My never ending goal is to constantly learn and make things from that knowledge, and for the last few years OOP has a something that I wanted to really understand.
I just recently finished a Flash AS2 Casino Game that really opened my eyes to some advanced OOP techniques and my good friend Guy Wyatt really showed me the way on that front. Guy helped me understand the more advanced concepts over time in real world usage. I used to be a designer that coded on the Flash timeline for everything, but now since I've been using the core concepts of OOP like Encapsulation , Inheritance, and Composition / Abstraction just to name a few in real world situations my work is class based and far more structured and maintainable. In fact I make a conscious effort to use OOP for everything now if I can. In some ways I find it hard to even consider the old timeline approach for most things things now. And in a team environment I have been able to see the benefits such as version control and code maintenance which really makes a big difference with lots of hands working in the same code base. Which reminds me, I remember something Jesse Warden once told me when I was working with him a while back when I was just getting into OOP. Jesse said:
"...Aight bro, once you get the syntax down it's on to Design Patterns and OOP Architecture yo and then you need to use those wisely if and when needed..."
- Jesse Warden
That was about 4 years ago, and Jesse couldn't have been more right about the using the patterns when needed and not just to use them for the sake of using them. And to second Jesse, I think grant Skinner makes some very good points on the subject and I would highly recommend reading Grant Skinner's post about Design Patterns called On Design Patterns and Reality. He makes realistic and practical comments on when and how they can be used and says:
"a programmer that understands design patterns is an educated developer, but a smart developer knows how to implement and adapt those patterns to real world situations."
"One of the things I try to emphasize with developers is that the only absolute in programming is that there are no absolutes. A lot of developers get trapped, either by becoming a pattern zealot and wasting a lot of time trying to code to patterns, or by disregarding patterns completely (because they are too hard to understand, require too much forethought, etc)."
"Patterns are architectural heuristics. Understanding them should widen your solution spectrum, not narrow it. They provide you with proven ways of solving a specific problem in programming. The reality is that you will rarely encounter that specific problem in the wild, but you will encounter variants of that problem - as such you must be flexible enough in your coding "philosophy" to adapt patterns to suit situations. You must code to the scenario, not to the pattern."
- Grant Skinner
So anyway's I'll get to the point. My desire as a graphic designer has always been to be a designing coder. I feel it extremely satisfying to keep both knives sharp and create things from "Soup to Nuts". So I always do searching and reading for links or blogs etc.. that will not only help me learn those advanced concepts, but will help others who have the desire and passion to do the same thing as I do, Devigning (Designing Developers). I totally support designers who want to learn how to code, and it's becoming more in demand and in some cases expected by designers today. As the need for rich dynamic interactivity grows so does the knowledge required to design and build these dynamic interactive applications. If you are a designer with the will to code or push yourself a little further, try reading some of the links below. They are good places to start and will help you build a strong OOP foundation. The best way is to just jump right in.
I found this article today on the Adobe Flash Developer Center that had some great tips and tutorials for OOP and ActionScript techniques. Below is the link to a really good resource for designers who want more and want to learn development with the Flex / Flash platform in ActionScript 3. So I Just thought I'd blog about this good collection of knowledge from Adobe and it's very talented contributors in the links below.
ActionScript and object-oriented programming
Flash Developer Center - http://www.adobe.com/devnet/flash/actionscript.html
Design Patterns - http://en.wikipedia.org/wiki/Design_Patterns
On Design Patterns and Reality by Grant Skinner - http://www.gskinner.com/blog/archives/2005/08/on_design_patte.html
Code Architecture Wisdom from Dune by Grant Skinner -
http://www.gskinner.com/blog/archives/2004/11/code_architectu.html
|
Lee Brimelow has a new tutorial called Using the Document Class which shows you how to use this great new OOP feature in Flash CS3 Professional. This allows you to have zero code in your FLA and make your projects 100% class-based. |
|
Jeff Kamerer (Sept. 28, 2007) Get an overview of Flash components, including how they are structured and how they can be deployed to the Components panel. |
|
Download two complete chapters from this hands-on introduction by William B. Sanders and Chadima Cumaranatunge to learn how reusable design patterns solve common problems in Flash and Flex applications. |
|
Download two complete chapters from this updated reference by Colin Moock to learn about the core of the ActionScript 3.0 language, as well as the new Flash Player API. |
Creating movie clips with reflections in ActionScript 3.0Ben Pritchard (July 23, 2007) |
Object-oriented programming with ActionScript 3.0Learn about the concept of classes and how ActionScript 3.0 helps you write more portable, reusable code for your web applications. |
Filtering XML data in Flash applications using ECMAScript for XMLAndrew Muller (July 2, 2007) |
Tips for tuning ActionScript 3.0 performance for Flex and Flash developersLearn about the Flash Player architecture and AVM2, and improve performance through typing and data binding in your Flex and Flash application development. |
New to ActionScript 3.0?Freshly updated from the ActionScript team and community, these new articles and videos show you how to get started, migrate your Flash applications, and drill down into ActionScript 3.0. |
Formatting text for localized Flash projects using CSS, HTML, and ActionScriptDan Carr (June 18, 2007) |
Examining the Puzzle Game sample applicationValerio Virgillito (May 14, 2007) |
Deconstructing the ActionScript 3.0 Flash video gallery applicationDan Carr (April 30, 2007) |
Introduction to event handling in ActionScript 3.0Use the new EventDispatcher class to track mouse interactions and create your own custom events when building applications in Flex or Flash. |
Creating animation in ActionScript 3.0Jen deHaan (April 16, 2007) |
ActionScript and object-oriented programming
Flash Developer Center - http://www.adobe.com/devnet/flash/actionscript.html
Design Patterns - http://en.wikipedia.org/wiki/Design_Patterns
On Design Patterns and Reality by Grant Skinner - http://www.gskinner.com/blog/archives/2005/08/on_design_patte.html
Code Architecture Wisdom from Dune by Grant Skinner -
http://www.gskinner.com/blog/archives/2004/11/code_architectu.html







0 comments:
Post a Comment