I hate Flash!!!

2001-10-13

I'm working on this map for my sister's excersie plan. It's not going to be that great but it's consuming all my time. I worked on it straight today from 12pm till 5am, that doesn't include about 20 hours I already put into it and it will be at least another 10 until I'm done. Why is it taking this long? Because FLASH SUCKS ASS!!!

Maybe I just don't know how to use it effectively but I really don't see how people actually get stuff done at all.

The biggest problem is it's got a graphical user interface at the expense of simpler stuff. Why is that a problem? Well, in my case I need to put in 20 faces (pictures of people). Each face consists of 3 parts. A full face picture, a picture from the mouth up, and a picture from the mouth down. In C++ or Java I would just make some structure and do something like this

{ "mom-face.jpg", "mom-top", "mom-bottom" };
{ "tami-face.jpg", "tami-top", "tami-bottom" };
{ "dad-face.jpg", "dad-top", "dad-bottom" };

That would be about it. I'd be done in 5 or 10 minutes. In Flash though, as far as I can tell, I've got to load each piece by hand and in order to be able to control the pieces each needs to be made into a Movie Clip (short for something that can be controlled).

So, the process of putting just one face in is. Import the full face, click properties, tell flash not to smooth it, convert to a symbol, give the symbol a name so I can access it from scripts, convert the face graphic which is now inside the newly created face MovieClip itself into a MovieClip so I can access it separate from the other parts from a script. Give it a name (otherwise I can't access it from a script). Make a new layer (since the 3 parts overlap and are impossible to select otherwise), name the layers, lock the old layer (so I don't re−select the full face). Make the new layer active. Import the above−mouth graphics, select properties, turn off smoothing, convert to Movieclip, give it a name, import below mouth piece, select properties − turn off smoothing, convert to movieclip, give name. Now, I'd be done except that now the interface for selecting parts is cluttered with 7 new things. The parent movieclip, the 3 movieclips inside that and the 3 graphics. So, now I have to make a folder in the library and move all 7 parts inside it and fight with sizing windows and stuff so I can access the library list.

Now, multiply by 20.

Next on my list is ActionScript. It's not a bad language I guess but it's a non−strict language. That means that unlike C or C++ but like Perl, it doesn't care if something is not defined. If you type

_root.Dad.Faceparts.Uppper

by accident (see the extra 'p' in upper) you get no warning, no errors. The last 6 hours of debugging has been adding line after line of status checks until I narrow down the line where my bug is only to find it's a typo like that. If it was C or C++ I'd have been told immediately.

Perl has similar problems but perl has an option to be strict (to give errors in that case) and perl is stricter in other places too so I seem to get more help from perl.

Then, on top of all that there is the interface to Flash. I'm sure it all makes sense to some artist that's using it and not using the scripting but the problem is, it's not designed for scripting AND there are lots of interface design bugs. By not designed I mean that you can only see one piece of code at a time. Since code gets scattered all over the place in Flash it would be very helpful to be able to have multiple windows of code open (like nearly any other programming environment for the last 15 or 20 years). Then, worse, even though the code window is in front, often, hotkeys are responded to by things in the back. So, you press Ctrl−X expecting to cut some text and instead you cut half the objects out of your project even though they are hidden behind your code window.

How these guys do it is beyond me. They must have the patience of saints or they know something I don't.

Comments
Tokyo Game Show
Is digital cheaper than traditional photography?