Mind the gap(s).
I’m talking about the gaps that Flash 9 and Actionscript 3 are bringing to the table:
1) the learning gap between Flash 8 development and Flash 9 development
2) the larger gap that will grow between design teams and development teams
I’ve talked now to a few clients now about these gaps … it’s a really strange time for development targetting the Flash 8 player, because in a lot of ways it’s just throw away work. Flash 9 will probably be see the fastest growth of any player, and I don’t think a lot of managers really understand how different AS2 is from AS3. A lot of houses still develop for in AS1, or have very limited or no knowledge of AS2 — and I think have trouble realizing how much time and energy it will be to get a lot of their current developers and design teams up to speed. Flash 9/AS3 is *not* centric to the designer anymore, and designers will have some trouble getting their heads around the new type of workflow. Even some AS2 programmers will struggle for a little while with new language — I can’t overemphasize the fact that AS3 workflow takes time and practice to learn best practices.
So I’ve been advising clients that are targetting next year as their launch goals to re-evaluate their projects and timelines. AS3 offers tons of ways to work smarter rather then just work, but it will take time to get your teams up to speed. I wrote a document to outline why it will help future development — and have been stressing that any work targetting the Flash 8 Player destined for next year is going to be throw away work (less then one year life span for a project). (document will be below)
However the biggest problem I see is with design teams, and how their role might change drastically. There are two possible outcomes: 1) where the design team becomes less integral in the programming of a UI, or 2) designers will learn how to become better engineers and continue to be a part of the UI engineering team. The simplicity of having a designer do a lot of the UI — button presses, transitions, etc, will not be that simple anymore. Any architect managing a project will stress the organization that AS3 brings, which means many different levels of OOP type of project. Working with many design teams, I know there is a general apprehension when it comes to becoming more of an engineer - but now is the time to spend the time, spend the money — invest in your team. Your designers will have to become better engineers, and your engineers will need to become better designers. It’ll be the only way to continue to encourage synergy within your teams.
I’m attaching a document I wrote for a client about “Why Flash 9″ — you hear a lot of fluff sometimes about it, but I think people need to understand how AS3 will encourage more framework building, and code re-use then ever before.
Flash 9 for frameworks and framework-building for the
next wave of Flash 9 web sites and applications
About this document:
This document is intended to be a recommendation for future frameworks or framework building that you can do to leverage the new features and scripting implementations of Flash 9. There are numerous new features that will allow for faster and more robust frame-work building, but there are also some security implementations that may be cause for some concern. People talk a lot, and you hear a lot of how it’s so great this and how it’s so great at that — this is intended to really summarize the most important features so you can be prepared. The RIA/IA field within the next 18 months is going to change rapidly (as it did when flash 4/5 came around). This document is intended to one show you how 1) AS3 can increase your productivity, as well as how it will change emerging technologies as we know them.
Actionscript, what’s different, and how it can increase productivity and interactivity.
O.O.P.s I did it again.
AS2’s model of OOP was a loosely based implementation of object oriented programming – really it wasn’t OOP at all. It also compiled into AS1 byte code which dated back to Flash 5 –by no means a robust run-time. AS3 increases run-time performance, so that object oriented programming no longer reduces performance. AS3 also tailors to a customizable event flow, the bane of AS2. A typical AS3 project is generally more code, but a lot less debugging — if the packages and classes are organized. AS3 really tailors towards package building, and re-use, as you will find on Adobe Labs. There are already numerous packages tailored towards RSS1 and 2 parsing, Atom Feed parsing, a YouTube API connector, a Flickr API Connector, the list goes on and on. There are also custom packages for turning internal generated bitmaps to be saved as PNGs and JPGs. The possibilities are almost endless — with AS2 the horizon was always in sight, now it’s hard to find with all the new features.
Standards, Documentation, Automation!
Adobe has really attempted to adopt the software industry’s workflow when it comes to AS3. They just recently release ASDoc – which is the AS version of JavaDoc – and works exactly the same way. Because of this standard it will be easier to write documentation in-line, and have html documentation extracted from your actual code base. This will help developers that come into the package after the fact, and reduces the time necessary from the original developer to document a code package. This will also allow you to compile packages, and have them in a “release-ready” state, so that no code can be altered within your code base that you’ve deemed as “DONE”. The methodology can be seen within AS help, as they’ve used ASDoc to document the entire flash and mx packages.
External Code Packages and Libraries:
AS3 has new features to leverage external packages and libraries – that is, loading functionality at run-time rather than compile time. While this mainly serves use for large scale applications, it has it’s uses in loading sets of external classes or assets. This again will allow for greater flexibility at run time, and could bring down a lot file sizes as a methodology for loading functionality only when needed is now possible.
ByteArray access opens up custom encryption methodologies, network protocols, and new media interactivity
The new ByteArray access will give deeper access to a lot of core functionality. It has been implemented in a number of different areas within AS3, but the profound effects of these can be realized immediately. For instance, in Loader.loadBytes() (this loads a SWF from memory), an external swf could be encrypted on the server-side and decrypted before loading into a parent container. The new Socket.writeBytes() will allow custom network protocols to be built. BitmapData.setPixels(bytearray) will allow for faster manipulation of bitmap data, allowing for greater interactivity. SoundMixer.computeSpectrum(bytes) can analyze a sound and return the actual waveform or FFT spectrum – banners and web sites can be made to interact with sound, rather than “faking it”. Already Flash 9 applications have been released that do real-time audio manipulation and sound synthesis, as well as real-time 3d texture mapping with 1000’s of vertexes. No joke here. The Flash 9 AS3 model is here to stay.
New sandbox security implemented in your backyard
Previous versions of Flash 8 implemented a “domain” based check of the security sandbox. This has been now increased to an “exact” domain match only. Sandbox security has also been applied for ALL externally loaded files and content. The new security model affects: 1) RTMP Content served from Flash Media Server, 2) External Audio, 3) External Video . This will not change development too much, however it should be noted as cross-domain sharing might be a little more tricky then it used to be.
Strict is good, when applied to non-curfew related activity
AS3 is strict. AS3 is strict at compile time. AS3 is strict at run-time. Most of the time spent with AS2 projects were not development related, but bug related. Also, AS2 warnings of errors did not occur on certain types of errors, and could only be found when something just “didn’t work right” after the file was published. It really hampered development flow as one would have to test the movie over and over and over before the real problem could be recognized and addressed. Yes, AS3 is more code. No, you won’t mind doing it.
Client-side frameworks and data interactivity – Flash 9
AS3 has implemented new ECM4 standards of dealing with XML. This means the xml object is now a native object, and does not have to be redundantly looped through. This really tailors to the web-API model of data interaction. Creating a xml data layer between the data and the client side will allow the front-end of the data to reside within either an AJAX or flash framework, as well as be able to provide feed-based data for other external applications or web sites.
XML is simple as 1,2, AS3
Looping through XML structures within an AS3 document can be access through dot notation rather than looping through endless childNodes array (like in AS2). Setting internal xml and retrieving external xml is simple now, and is as easy as:
var xml:XML =
<child>
<level3>
<image name=”1″/>
<image name=”2″/>
<notimage name=”3/>
<notimage name=”4/>
</level3>
</child>
for each (var list:XML in xml.child.level3.image) {
trace(list.@name); // traces 1,2
}
Ability to pulling out intensive server logic and placing it on the client
In many current web applications the server is primarily used for most if not all logic. Certain logic can now be pulled out of the server environment and now exist on the client. For instance, before it was not efficient to encode a PNG or JPG file at its lowest level and then send it to the server – the old method involved sending a bitmapdata object as ascii or utf-8 text to the server, and then saved. Flash 9 can deal with this type by now creating its own bytearray (actual png or jpg), and then passed via a enctype=”multipart/form-data” form field. This can take a large amount of GDI processing off the server, and relegate it to the client. This is just a simple example of doing compilation on the client before sending it to the server – of course there must be a use-case for it … but the new performance of the player will give a developer more flexibility when it comes to placing logic on the server side or client side.
Flash 9 as applies to desktop applications and network support
Building Kiosk applications or desktop application should become a lot more easier and robust using the AS3 model. With byte-reading sockets, creating and connecting to custom network applications is now possible. There are already applications that have connected successfully to the AOL instant messenger service, connect to SMTP hosts, FTP hosts, etc. The network operability of the Flash 9 player will expand possibilities to almost any service.
Previously created Developer-Frameworks
There have already been a few AS3 developer frameworks as applied to data-interactivity and dynamic user-interface. Most notably is Cairngorm, but I’m sure more will follow.
The corelib libraries include rss2, atom feed parsers, png and jpg encoding, base64 encoding and decoding, etc etc etc. You can find most of these on labs.adobe.com.


I’m very eager to learn AS3, and am considering picking up Lynda.com’s tutorial. Thanks for writing the article above! I’m super excited about the run-time waveform analysis abilities!
Comment on August 28, 2006 @ 8:43 am
[...] See also Daniel’s excellent discussion of the gap between Flash 8 and Flash 9 (which, to me, also illustrates something of why Flash 9 is cool). [...]
Pingback on November 2, 2006 @ 3:46 pm
Your AS3 story?…
>Your AS3 story? If you’ve made the transition to high-performance ActionScript 3, then what do you know now that you wished you had known then? If you could offer advice to someone contemplating the jump to the ECMAScript Edition 3 standard, what tip…
Trackback on November 5, 2006 @ 2:25 pm
Sounds alright but I’m not keen for the onslaught of of application only websites. Flash has always had a nice balance of design and functionality. It would be a shame to see it suddenly turn in favour of the latter.
Comment on November 13, 2006 @ 11:08 pm
I definitly agree on the gap thats taking place. I think for the dev’s that understand OOP or at least others interpretations of it can benefit from this environment. For others however, its basically creating a rift until the tools catch-up with the language.
Comment on November 24, 2006 @ 7:35 pm
@Dan : Great read.
@Dale : I agree, I do a reasonable amount of UI work in Flex and have to say despite having CSS to use, you frequently have to bend the components to achieve styling techniques. I don’t ever think it’ll be as flexible as simple XHTML/CSS or Flash. I have’t done too much reading into integration of functional SWFs created in Flash (I.e. not simply 1 framed swfs with no actionscript) but I can recall it being not quite straight forward. Any more info on that?
Comment on December 6, 2006 @ 10:27 am
Great article; wish I would have seen this sooner!
Comment on July 27, 2007 @ 11:41 pm
Even though this was posted some time ago, this is by far one of the best posts concerning the differences and the growing rift between the AS2 + AS3 and designer + technologist.
Well said.
Comment on October 20, 2007 @ 8:28 pm
I work in India and I see that Flash designers are no longer required here anymore.
The only place they have here is for character 2D animation.
Its seems that the mental plane has changed and RAD no longer exists. All text inputs creation and its placement, animations, transitions have gone to programmers who have no design sense whatsoever. Also no companies here understand that AS3 requires quite a bit of time for starting and a planned workflow. They get directly to implementation even for small projects and the deadlines are shorter than they were when it was in AS 2 which could be accomplished with many workarounds.
Timeline coding is also completely out. And to think that Adobe said that do not program on the components directly you can code on the timeline instead which no one wants anymore. Go OOP. Even for a simple tiny program say bounce a ball do I have to follow OOP?
I even found a strange phenomenon wherein a company interviewed me with a mix of AS2 and AS3 questions together both of which changed the answer automatically. Sometimes what would have been output in AS2 turns out as an error in AS3 because of strict type definitions. I had to give two answers to almost all the questions even though they were option based.
Comment on January 16, 2009 @ 11:37 pm
The writer has written a superior article. I got your point and there is nothing to argue about. It is like the following universal truth that you can not disagree with: The truth is no one knows the truth. I will be back.
Comment on February 2, 2010 @ 7:59 pm
ok, good post.
Comment on March 4, 2010 @ 7:23 am
а у тебя такой же ди зай как у меня сайт ))).
Comment on April 8, 2010 @ 11:53 am
Извините за то, что вмешиваюсь… У меня похожая ситуация. Готов помочь.
Я считаю, что Вы не правы. Пишите мне в PM, поговорим.
Тьфу ты, туфта!
Меня тоже волнует этот вопрос. Скажите мне, пожалуйста - где я могу найти больше информации по этому вопросу?
Жаль, что сейчас не могу высказаться - тороплюсь на работу. Вернусь - обязательно выскажу своё мнение по этому вопросу.
Comment on April 21, 2010 @ 2:38 pm
I consider, that you are not right. Let’s discuss it. Write to me in PM, we will talk.
I join. So happens.
Certainly. So happens. We can communicate on this theme.
It is remarkable, it is a valuable phrase
I confirm. And I have faced it. Let’s discuss this question. Here or in PM.
Comment on April 23, 2010 @ 10:11 am
Yes, you have correctly told
It is a pity, that now I can not express - it is compelled to leave. But I will return - I will necessarily write that I think on this question.
This phrase is simply matchless :), very much it is pleasant to me)))
It is a lie.
I can not take part now in discussion - it is very occupied. I will be free - I will necessarily write that I think.
Comment on April 23, 2010 @ 2:59 pm
Unsuccessful idea
I join. It was and with me.
What necessary words… super, a remarkable idea
I apologise, but, in my opinion, you are mistaken. I suggest it to discuss.
You Exaggerate.
Comment on April 24, 2010 @ 2:25 pm
Мне кажется это отличная фраза
Я считаю, что Вы допускаете ошибку. Давайте обсудим. Пишите мне в PM, пообщаемся.
Я извиняюсь, но, по-моему, Вы ошибаетесь.
Отличный ответ, браво :)
НЕ ВЕРЬТЕ.НИЧЕГО БОМБОВОГО ТАМ НЕТ.ТАК СЕБЕ НА 3.
Come here http://v9v9.ru Welcome.
Comment on May 24, 2010 @ 1:41 am