here are some assorted things i've found valuable to know when producing flash movies. if this list gets too unwieldy, i'll break it into categories.
got a useful tip? send it to me...
- keep .swfs in same folder as .html files. on mac ie 4.5, links followed through "geturl" are relative to the .swf file, while in all other browsers, links are relative to the html file.
- keep each symbol on its own layer. at the very most, only group like-symbols on a layer, eg. "buttons".
- name your layers intelligently. when you have 75 layers, "layer 63" becomes quite useless as a name.
- always make shapes or groups into movie clips before tweening. if you see a symbol named "tween1" (or some other number) in your library, you've forgotten to convert shapes to symbols before tweening so flash did it for you. fix the tweened shape immediately by deleting it, creating the symbol in advance, and recreating the tween. otherwise you'll have a bunch of symbols named "tween13" etc, which gets unmanageable.
- make all artwork into symbols (movie clips, unless you specifically require graphics)
- to force animation to play back at a consistent speed on all machines, you can add a silent streamed sound that loops for as long as the movie plays here's a single second of silent sound you can use. when a movie has a streamed sound playing in it, the animation will drop frames to keep up, so things may look choppy, but you get the synch in return. use this if you need to match specific frames of animation to sound, or to prevent unwanted sudden drops in framerate for complex sequences.
- keep all actions on a single layer. name that layer "actions".
- keep all labels on a single layer. name that layer "labels".
- keep sounds on separate sound layers.
- keep all reusable actionscript in a movie clip called "subroutines".
- leave a few empty frames at the beginning of all your movies. this makes adding frames before your intro easier, and prevents flash from occassionally skipping actions on the first frame of your movie.
- don't initialize a sound on the same frame as a major change in animated content. sounds take a little while to initialize so your animation won't play smoothly if it starts when your sound does.
- don't use tell target to communicate with a movie clip that is initialized on the same frame as the tell target action. put the clip on the frame prior to the tell target action so it fully registers before you target it. (otherwise flash will sometimes ignores play actions).
- import all sounds and images as high quality originals: 44hz/16bit wavs, full res bitmaps. flash will do the compression on export and you don't want to compress twice or you'll end up with lower quality output that is the same size as it would have been if you had started with high quality originals.
- if a streamed sound is crackling or poorer quality than the same sound exported as event, reduce the original sound in a sound editor by de-amplifying, mixing to mono, and normalizing. flash seems to have trouble with streaming wide range sounds.
- build preloaders into all your movies destined for web use. learn to love preloading. here are some instructions on adding preloaders to your movies. always test how your movie feels when it loads over a 56k connection by using "control>>show streaming" while in "test movie" mode.
- remember that movie clips play and loop by default. you probably want a stop on the first and last frames of most movie clips.
- a symbol with alpha set to 0% (fully transparent) will still show up as a faint shadow of itself in 16bit colour mode. make sure to put a blank keyframe after fade sequences that end with a symbol disappearing.
- when exporting non-mp3 sounds, use 11/22 as a starting sample rate. if you can bear it, go lower. only go higher when absolutely necessary. for mp3, start with 16 kbps (default).
- to test the exact effect of sounds, symbols, and bitmaps on the file size of your movie, check the box that says "generate size report" under publish settings>>flash. this option makes a text file that lists each component's weight. the text file will be in the same directory as your .swf.
- if you use the "publish" command in flash 4 to create your html pages for your flash movies, make sure you have the latest publish templates from macromedia.
- if you use a set of special colours in a movie, you can save the palette and import it into other movies. in flash 4, click the colour chooser, then click the little swatches button to manage your colours, then click the little painter's palette icon in the bottom left of that dialog to "save", "load", etc. your palettes.
- to move an entire sequence of animation, click the "edit multiple frames" button (in flash 4, it's at the bottom of the timeline, four buttons right of the layer trash icon). move the little onion skin markers that show up to the right and left of the playhead in the timeline to span the number of frames you want to move. select all the layers you want to move by control-clicking or shift-clicking on them, then do edit>>select all. you can now move all the artwork on all the frames you've selected by picking it up with the mouse, or nudging it with the arrow keys,. click "edit multiple frames" again when you're done to return to normal editing mode.
- you can change the placement and range of a gradient you've applied with the "transform fill" tool. fill a shape with a gradient, then press the button with the vertical gradient and two arrows on it. you're now in "transform fill" mode. click on the gradient you want to change and you'll see some handles appear. use the centre circle handle to move the whole gradient, the edge circle handle to rotate it, and the square handle to resize it.
- you can prevent your movie from scaling up to fit your "test movie" window by setting an fs command action on the first frame to "allowscale = false". note that this won't prevent your movie from changing sizes in the browser...just in the standalone player.
- if you want to make a shape that is disconnected from other shapes on the same layer, create a group before you start drawing. when you're finished drawing, double click the canvas to exit the group you've made. your new shape will now be in a group of its own.
- if you want to rotate an editable text field, you have to make sure to export the font under the text field's properties.
- by default, flash loads the first frame of your movie one layer at a time, from the bottom up. if you have visuals on that first frame, they appear to come in as a bunch of pieces, as the layers are loaded. here's quick way to bring them all in at once without using a preloader loop. 1) change the load order for your movie to "top down" (under file>>publish settings). 2) on the top layer of frame 1, create a solid rectangle that covers your entire canvas (and the contents loading underneath it) 3) at frame 2, put a blank keyframe on your top layer to get rid of the rectangle. presto, all the contents of your first frame are hidden while they load, but revealed simultaneously when the movie gets to frame 2. [tip suggested by steve husting]
- february 18, 2000: posted.
- february 23, 2000: added links to resources i had forgotten to link when i posted the tips. reworded some tips, and added one more.
- april 14, 2000: added load order tip.