Disclaimer: Although this blog post does contain a few witty comments, it’s not worth reading unless you’re a Flash developer. If you’re anyone else, the local classified ads deliver more bang for the reading buck.
I’ve been creating some animated graphics for my company, Second Wind’s trade show booth and wind blog. This year, we (speaking broadly — a more accurate description is ‘a few folks from my company, not including me) are exhibiting at the American Wind Energy Association’s WINDPOWER 2012 tradeshow, an enormous industry extravaganza featuring Karl Rove as this year’s keynote speaker (please don’t get me started). The animations were created in Flash (she blogs! she cooks! she develops Flash applications!) and I exported them as Shockwave files to play over the monitors in the booth.
The problem arises when our fearless leadership also wants to be able to play the videos on their iPads. Imagine how flattered I am that the stuff I put together as “moving wallpaper” is deemed content-worthy enough to gaze at instead of using iPads for their original purpose (watching people dive from third-story windows wrapped in bubble-wrap, looking up drink recipes, and attracting favorable attention from other nerds). Imagine my distress when I found that the dialog in Flash CS3 called: “Publish settings . . . QuickTime movie with Flash track” generates an error message saying:
“QuickTime does not support Adobe Flash track beyond Flash version 5. You can however, export a QuickTime move with Flash rendered as video by selecting File > Export > Export Movie.”
OK, so I can change the Publish settings to Flash version 5 or lower . . . (Version 5? Wasn’t that like twenty pounds, two relationships, and eighty-six haircuts ago?) Oops, a whole bunch of cool things I did using features from Flash 5+whatever aren’t supported. Who knew I was that cool? Back to Google Search, where I find that if I can’t export a QuickTime movie using Publish, I can go under the File menu and “Export movie.” I select “When last frame is reached” and sit back, confidently, to wait for . . . hell to freeze over.
My friends on the Internet (is this like people consulting their fillings for messages from outer space?) pass along two key pieces of information:
- If you have a “stop” on your timeline before the last frame is reached, of course, the last frame won’t be reached and you’ll freeze.
- The “when last frame is reached” doesn’t work (but wait . . . more on this below), so you can get around it by choosing “After time elapsed.” (Thanks to R. Jon Macdonald, who explains this most cogently.)
Okay, so I make sure there are no “stop” actions on my timeline, and I take the total number of frames, divide it by the number of frames per second, and then divide it by sixty and do a bunch of other math involving remainders . . . to figure out how many hours, minutes, and seconds a 2160-frame Flash video has at 24 frames per second. Are you still with me? If so, I’m impressed . . . I should send you a Starbucks card or something.
I had two problems with this method. First, it didn’t work. Second, I had no idea why. Once, I did get it to work, but the movie was truncated even though I was pretty sure I’d calculated the time correctly. Another time, it just froze again. I rejected one forum commenter’s advice to let the process run overnight — I figured this was giving the bastards too much of my time.
I took a detour through trying to export the files as .swf and then run a bewildering variety of video converters on them (AVS4You, Movea, etc.) but none of them worked and all of them were documented by someone who was not a native English speaker. (This would not have been a problem, except they were trying to write in English and it didn’t make sense to me). One irritating phenomenon is that if you’re trying to export an .swf file that has an imported video embedded in its timeline, a converter like AVS4You will export . . . the original video that you embedded, while ignoring all the other stuff you put into your .swf. Makes you wonder why you bothered in the first place.
I finally located an article that solved my problem. This is the one I was trying to locate so I could publicly thank the author, but I was unable to find it today. The answer, my friends, is to make sure that all the layers on your timeline contain exactly the same number of frames. That’s right, use your trusty F5 key and Shift-F5 to add and delete extra frames from your layers so that all your layers end at the same time. I suppose this eliminates any confusion about what “the last frame” is and allows your movie to export properly.
Here are two other pointers:
- As noted above, make sure there are no “stop” actions anywhere on your timeline.
- The export will certainly take a while. Not overnight, but for me, a 2000-frame animation took an entire lunch break to export.
Finally, there was a good note by Danny Chang about what codec and pixel dimensions to use if you’re exporting video for an iPad — 1280 x 720 pixels, and use the H.264 codec.
One other random problem I encountered when publishing content to .swf format . . . one of my files became corrupted so that when I tried to select .swf as an output option under Publish Settings, the program would crash. I got around this by using Control:Test Movie, which saved an .swf file to my desktop.
Please comment and let me know other weird Flash bugs and workarounds you’ve encountered. I’ve had such mixed results when searching on the Internet for solutions to tech problems — some of them work, some don’t, and some go part of the way. Thanks for making it this far!