Thursday, July 17th, 2008

Building a better ActionScript

Category: Adobe

Colin Moock has been creating some buzz in the Flash community with his article on the charges against ActionScript 3.0:

  1. The removal of on()/onClipEvent() from Flash CS3 makes creating simple interactivity hard.
  2. Getting rid of loaded .swf files is hard.
  3. Casting DisplayObject.parent makes controlling parent movie clips hard.
  4. The removal of getURL() makes linking hard.
  5. The removal of loadMovie() makes loading .swf files and images hard.
  6. ActionScript 3.0’s additional errors make coding cumbersome.
  7. Referring to library symbols dynamically is unintuitive.
  8. Adding custom functionality to manually created text fields, to all movie clips, or to all buttons is cumbersome.
  9. The removal of duplicateMovieClip() makes cloning a MovieClip instance (really) hard.

Despite all the talk of GPU blitting, pixel shading, and ligatures, a non-negligible percentage of the Flash community is rightfully asking: is Adobe still committed to the simple, agile authoring practices on which Flash was founded? It’s a rational enough concern. After all, Flash built its success on “ease of use.” Some 11 years ago, the tagline on the Flash 2 box read: “The Easiest Way to Create Fast Web Multimedia.” Originally, Flash was purpose-built for people who wanted to make things move without years of animation training, or who wanted to create interactivity and programmatic behavior without a degree in computer science. A decade of loyalty later, those same people—call them the “everyday Flashers”—are now wondering how, or even if, they fit into Adobe’s new platform strategy.

Although the general concern over Flash’s ease of use is natural, much of it is based on fear, not facts.

I am sure Adobe is watching. For one, Francis Cheng posted about it too, and asked for input.

Posted by Dion Almaer at 1:18 am

4.9 rating from 209 votes


Comments feed TrackBack URI

Finally someone expressed my opinion about AS3 without any extra buzz.
AS3 will never be adopted by general Flash users, unless they provide simple functions or tricks to do tasks like “opening an URL”.

Hell, not every Flash user knows OOp!

Comment by ccan — July 17, 2008

Most of these “charges” are oop related; flash developers shall start learning oop and prototypic inheritance and they shall live happily ever after – or just wait for flash libraries to address these “problems” (prototype, mootools, jquery anyone?).

Comment by deadcabbit — July 17, 2008

Flash CS3 designer users (who aren’t up to speed on OO coding with AS3) can always target flash 9 players with AS2 engine and write that kind of code to their heart’s content. Only if there’s some new flash feature in AS3 they want to use do they *have* to jump the gap, and in those cases, there probably should be (like deadcabbit says) a community driven AS Framework that adds convenience and utility functions to soften the blow that non-programmers get when they come to AS3.

That having been said, there are two features which Colin points out that I totally agree with: 1. unloadMovie replacement, and 2. clone object replacement. Those two are very frustratingly missing from AS3, and their workarounds often require some incredibly ugly code to make happen. These are, in my opinion, shortcomings of the language, while the others are just natural signs of the times that AS is moving forward quickly and it may very well leave some people behind.

But it doesn’t have to if a community rises up and creates frameworks to help. I just don’t think they (Adobe) should dumb down AS3 by adding that stuff in.

Comment by shadedecho — July 17, 2008

Use silverlight.

Comment by DarrenKopp — July 17, 2008

@deadcabbit there is the as3Query port of jQuery to actionscript at:

I haven’t used it enough to know if it covers all of the article’s complaints covers but it is fun/easier.

Comment by ujuxiun — July 17, 2008

>>Use silverlight.

Oh yeah right.

Comment by Nosredna — July 17, 2008

>>Use silverlight.
That’s like:
“My baby has a diaper rash.”
“Then get rid of your baby and build a robot child.”

Comment by Nosredna — July 17, 2008

I think Adobe is on a perfect way !! The Job Tilte “Flasher” is dead ! If you are a programmer AS3 & Flexbuilder3 or FDT & Ant are your tools. If you are a Flash designer or motion designer Flash CS3 is your IDE.
So If people want the old crappy dirt…… go on !!!

Flash Player is getting Faster and Better ( Astro Beta2 ).
Now I have the possibillity to use powerfull Frameworks like Parsley and use Inversion of Control Containers and the Dependency Injection pattern. That’s awsome eh ?

So if someone say’s he wants his mc.onClick = function(){goto and play(3);} it’s like saying i want those steam trains back.

Comment by silentium — July 21, 2008

Leave a comment

You must be logged in to post a comment.