[Just thought I should add a disclaimer here. I don't work for Adobe. Nothing I say here or in the comments is official information about what will or will not be in Flash CS4. I do not have the final, final release version, so things may have changed from the version I have been using, though I doubt much has.]
Actually, I might even say I love Flash CS4.
CS4 was announced today, and now I can talk about it. Yes, yes, I have OK from the mothership.
I’ve been working with Flash since Flash 4. From Flash 5 to Flash MX 2004, the Flash IDE was a major part of my daily life. Towards the end there, I started looking into other code editors – SEPY, PrimalScript, FlashDevelop, Eclipse, but the IDE was always a Control-Tab away.
Then came MTASC and SWFMill and it became cool to create an entire Flash workflow without touching Flash. I went in and out of this school. Compilation was surely a lot faster, but the time spent setting up, integrating, and debugging all those disrelated tools ofen wasted more time for me than what is was worth. FDT was the first high quality tool that pulled it all together and made it less ofÂ task to have a Flashless Flash setup. Overall, though I still had Flash 8 open most work days, it was much less a part of my life than previous versions of Flash.
Then by the time Flash 9 / Flash CS3 came out, we had Flex Builder allowing us to create AS3 SWFs with code alone. And with Embed metadata to inject graphics, the last bit of pain of the Flashless workflow was gone. I’m sure I used Flash CS3 less than any version of Flash yet. It was like an ex-girlfriend who worked in the same building. You bump into each other here and there, you’re cordial, you smile, but if given a choice, you stay off the floor where her office is. However, I did wind up spending a few months working heavily in CS3 while building some Flash components earlier this year. It was honestly not a pleasant experience. If you search this blog, you can see many of my complaints about various bugs in the Flash CS3 authoring environment I encountered along the way.
Flash 10 seems different somehow. I’ve been using it for several months on the beta program, and I actually find myself enjoying it. I think it’s actually possible that I spent more time using the Flash 10 beta than I did using Flash CS3 over the previous year and a half. There’s a lot that’s changed.
First of all, CS4 has a fresh new look. The new vertical properties panel is offputting at first, but you get used to it. It seems like there is a bit more flexibility in how you can configure all your panels. Most importantly, on the Mac, the whole app is contained in a single window. So half your app dosn’t disappear on you when you tab to another program. Yay!!! If you want to see more screenshots, this post by Jen DeHaan has a ton of images. And FlashMagazine has a bunch too. Of course, this is my favorite screenshot:
The ActionScript editor has been perfected!
OK, not really. It’s still a pretty poor editor and I wouldn’t want to code a large application with it. But it does have at least one improvement that makes me not want to beat my keyboard with my coffee mug every time I use it – code completion is now case-INsensitive. In other words, if you have myMC typed as a MovieClip and you type “myMC.gotoa”, you will still get a hint for “gotoAndPlay”. In all previous versions of Flash, you would have to type a capital A to get the code hint there. That just drove me batty. I complained to Adobe incessantly over that and the only response I got was, “Well, ActionScript IS case sensitive.” But finally, they got it, and it makes coding in Flash tolerable in small doses, rather than infurating. At least for me.
The Flash CS4 compiler now supports most of the same metadata commands that Flex Builder / MXMLC does. This means that if you have an AS3 class that uses Embed to pull in graphics or other assets, or uses SWF metadata to set stage size, color, frame rate, you can use that class to compile in Flash and it will actually work. Furthermore, you can type the following right on the timeline:
[SWF(width=800, height=800, backgroundColor=0xff0000, frameRate=120)]
And it will actually size the movie, set the background color and frame rate! Woot!
External Libraries and SWCs
In previous versions of Flash, if you had a folder containing AS3 source code, you could add that to your class path and compile against it. If you wanted to include a SWC in your project, that was a much different story and a very confusing workflow. In CS4, the AS3 Settings panel is very much like the Build properties panel in Flex Builder. You can add links to source folders containing AS3 class files, individual SWCs, folders containing SWCs, and SWCs to be used as Runtime Shared Libraries.
Just add the SWC containing a library and you can compile against it. You can do all this on a per-document or on a global level. Also, SWCs created by Flash and MXMLC are now supposedly much more, if not totally, compatible. So you can pretty much use them interchangeably. Unfortunately, the whole “code-hinting based on some stupid xml file of file types and properties” still exists, rather than actually parsing the classes and providing real code hinting. So you won’t get code hints on SWC-based classes. We’ll bug them for that in CS5.
There’s also the Config Constants tab you can see there. This lets you set constants and have conditional compilation based on their values.
There are a bunch of tiny little changes you’ll barely notice other than that fact that they don’t bug you. Like, the default frame rate of a movie has finally graduated from 12 fps all the way up to 24! Default grid size is now 10 instead of 18. I complained about things like that in every version of Flash. They finally fixed a bunch of them.
There’s also the 3D, IK, motion editor, etc. All the stuff that they show off in the previews. I don’t actually uses a lot of that stuff in the IDE, but it’s neat that it’s there.
For me, the great thing about Flash is the ability to open it up, Command-N new document, type some code, and hit Command-Enter to see what it does. You can have a SWF up and running within 60 seconds of getting an idea in your head. No need to set up a workspace, project, class. No need to save anything or decide where to save it and worry about deleting it later. So many projects I’ve done have started out that way and eventually become FLA projects and eventually migrated into Flex Builder based AS3 projects.
For me, that’s one of Flash’s best uses, as a rapid application prototyping environment. The problem was that it really became almost too painful to do that stuff in other versions of Flash. They’ve improved it to the point where I enjoy working in it in that capacity again. Of course, that means my desktop is now littered with FLAs waiting to be turned into something bigger. But that’s all cool.
Now, I know at least two of you (you know who you are) are going to want come on here and continue to use words like “bloated”, etc. If you really, really, really feel the need to do so, I’m not going to censor you, but hopefully you say something you didn’t say in the other threads and give some specifics of what you don’t like. And I’ll be able to either agree with you or disagree on specifics.
Is Flash CS4 perfect? No, of course not. What program is? But I honestly feel it is miles ahead of CS3. I see massive improvements and motion in the right direction, and I applaud that and encourage Adobe to keep going in that direction.
OK, I’ll throw one bone to the detractors. One thing that I think was a really poor design decision. There’s this new feature you may have seen mentioned in various presentations. I don’t totally understand it but it’s some kind of thing where the stage can show live previews of things, including video. But to implement that, as I understand it there is basically a Flash player instance running on or in the stage itself. A side effect of this is that Flash runs a bit hot now. Just sitting there in the background with an empty FLA open, nothing in it, nothing on stage, nothing running, Flash is using around 10% of my CPU. Ouch! Same situation in Flash CS3: 0.3%. That kind of freaked me out when I first realized it, but I’ve learned to live with it and don’t notice it anymore. It’s not like it’s using enough to bog down the whole computer or anything. But if you’re running on battery power, you might want to make sure Flash is shut down if you’re not using it. Or you can just close all your Flash documents. If the start page is the only thing showing, it’s fine. No stage, no CPU use. Big mistake not to make that something you can’t switch on or off. Hopefully that will be addressed.