avoid re-creating the same variables over and over again
if you find yourself creating a lot of new variables in loops or enter frame events then you can probably make things more efficient by simply declaring them beforehand and over-writing the same values
avoid repeated calls to display object properties. if you need to use the width or height of something then store it in a separate variable (if it's never going to change). each time you make a call to .width or .height flash has to examine the display object in question and actually find its width or height.
I've heard that turning things invisible off-screen isn't necessary because flash is at least smart enough to know what to render and what not to. but I don't know that for sure.
For any object not growing in size, and not cycling through animation frames, cache it as a bitmap.