As people now seem to become quite aware that other people will steal their flash games by simply reverse engineering the source code out of the compiled .SWF files, one idea which pops up in a lot of blogs and forums is this: "Why don't you simply encrypt the SWF file?" Great idea. Except that it doesn't help or work. Here is why:
The usual idea is to take the working game .SWF file, encrypt it and embedd it into another wrapper-SWF file which plays the real SWF loaded and decrypted from an embedded binary resource. Great, so nobody is able to see the decompiled source, right? Wrong.
Remember: If your wrapper SWF file can decrypt the real game, then anybody else can do this as well. It only takes the evil guy at worst as much time finding the key and decrypting the real content as it takes you to encrypt it. Even less time if he uses one of the dedicated tools for this. You've only made it a litte bit more difficult to get the code for him, you didn't prevent it at all.
In order to prevent people stealing your code by reading the symbols in your code, the only way to do this is to remove the symbols. If there are no symbols anywhere, you cannot retrieve them. So simply remove the symbols from your code before publishing your SWF. And that's what
code obfuscators are for. If the information isn't there anymore, it cannot be stolen. Simple as that :)