» in my experience...

» home | about | contact | résumé
» archives | donate | rss syndication

»
»
My Brother's house, several years ago.


Communiblog Communiblog expressed as RSS 2.0
Here at IMX
Memes R' Us
freetheaudio2.jpg
SuperNova 1987A from 1994 to 2003
GarageBand

Starting over.
[ Posted by Dan on November 18, 2003 | 4 Comments ]

Flash MX IconWhen you decide to learn a new skill, and set your mind too it, and apply your free time to this new pursuit, it can be discouraging to find out that there is WAY TOO MUCH to learn.

Even with my JavaScript experience, and experience using graphics applications (eg, Photoshop and Illustrator), the Flash learning curve is relatively steep (for me), and that's mostly due to a few things...

Breaking Standards
Due to it's heritage, Flash sometimes departs from the ECMA spec to maintain backwards compatibility with old versions of Flash. That just plain sucks and requires memorization of these rules exceptions (all languages have these, but making an exception to support old players is annoying).

Also, I'm very used to the window, document and frames objects in JavaScript and need to map these to different names in the Flash paradigm (in my mind, I've assigned frames to levels; see below). Also, you need to accept the underscore notation used in Flash for built in properties in built in objects (ie, a movie clip's location on the "x" axis is read from movieClipObject._x).
The timeline
I have already complained about the timeline, but it's worth listing out here. This is one of those times when the metaphor is getting in the way and needs to be jettisoned.
Levels
"Levels are a stack of independent timelines that are movies (SWF) stored outside the main movie, and brought in with the loadmovie action." This is a pretty new concept to me. I'm very used to assembling a page from many small pieces (loosely joined?) and getting a cohesive result, but the idea of a document stack is something new to learn.
Object Oriented Programming (OOP)
JavaScript is object oriented, but in a loose way, and you can go a long way into your career without doing any proper object oriented coding in that language. When you move over to ActionScript 2.0, you really need to get on the OOP bus. This is mostly due to the fact that the flash environment is more readily disposed to OOP than web page authoring. This is going to be a good thing for me to learn.

 

You missed some:
No Regular Expressions
Partial case sensitivity
No try-catch exception handling
Three variable scopes (local, global, timeline)

I also agree the underscore syntax is incredibly annoying. It's also really bad OO design to embed metadata about an object or element in the language syntax.

-Posted by kevin white on November 18, 2003 04:43 PM

>Partial case sensitivity

Yes, this is utterly annoying. One rule please.

>Three variable scopes (local, global, timeline)

Yes, this one is also annoying. And creating global vars in functions by ommiting the var declaration seems like a bad thing to me. As in...

function foobar() {
var a = "some text";
b = "some other text"
}
trace(a);
trace(b);
The first trace will report undefined and the second one will report "some other text" because that "b" variable is global due to "var" not being used to declare the variable. In JavaScript alerting the "b" would return "undefined".

Wacky stuff.

-Posted by Dan on November 18, 2003 04:51 PM

When someone here mentioned that they had provided an alternative to the timeline, I grabbed the newest version and gave it a spin. I have to say I'm fairly impressed that they were able to make it make that much more sense.

I do have a complaint that they need to address if they are trying to attract people like me, the IDE (Integrated Development Environment) suuuucks! Developers are very sensitive about the environment they work in, from my experience even more so than designers. I was getting really steamed because there was no place to put the trace window when I was working in the design perspective. Also I felt majorly constricted by the sheer number of windows that I had to either leave open or continually open and close.

My findings are that Flash has come along way since the last time I used it (version 5), but it's still kind of a toy language, and they aren't going to win over hardcore developers yet. I think the recent improvements would make me give it some consideration if I had a small project that I previously would have said VB was best for.

As far as the comments above:

Don't think of ActionScript as JavaScript. The fact that they ripped off the syntax is confusing, but if you can mentally divorce the two you'll be better off. This holds true whenever you are picking up languages. Then you won't get so annoyed with missing features and "non-standard" behavior becuase those are relative attributes.

The underscore syntax is probably because the guy who wrote that part was a C++ programmer. Those guys love leading and trailing underscores, mainly as descriptive info about the property that could fit on a 80X24 terminal window. These days that practice is frowned upon in OO languages like Java and C# because all the information you need to know about a variable appears when you mouse over it in any halfway decent IDE.

-Posted by Eric on November 19, 2003 06:23 AM

Eric said...

>Also I felt majorly constricted by the sheer
>number of windows that I had to either
>leave open or continually open and close

I should mention here why I didin't list this as an issue for me. I have two 22 inch monitors attached to my Mac :) So dealing with the zillions of windows and menus is much easier.

-Posted by Dan on November 19, 2003 09:01 AM




Comment posting has been turned off because I don't have enough time and will to deal with the constant comment spamming. I'm very sorry and will fix this sometime soon (soon = before 2004 ends).

MovableType AmphetaDesk
NetNewsWire BlogTree Subscribe with Bloglines RSS Feed
Copyright © 2001 - 2003 by Daniel Kapusta