A few months ago I built a class that makes establishing two way communication between SWFs via LocalConnection much easier. This is useful for talking between different SWFs embedded on the same HTML page, but especially for communicating between an ActionScript 3 application SWF, and loaded ActionScript 2 content SWFs.

It's fairly easy to use, just create a SWFBridge instance inside each SWF with a shared id:

// in the AS2 SWF:
var myBridge:SWFBridgeAS2 = new SWFBridgeAS2("connectionID", clientObj);
// in the AS3 SWF:
var myBridge:SWFBridgeAS3 = new SWFBridgeAS3("connectionID", clientObj);
The SWFBridge system will automatically negotiate a two way connection between the two instances. The nice thing is, you don't need to wait for your content to be loaded to instantiate your bridge – it will set itself up as a host, and wait for another bridge instance to connect to it. Now you simply call "send" on either SWFBridge instance to call a method on the clientObj of the other instance.
// for example, calling this in the AS2 SWF:
myBridge.send("myMethod", "Hello", "World");
// would result in this method call in the AS3 SWF:
clientObj.myMethod("Hello", "World")
When you're ready to unload your SWF, it's usually a good idea to close the connection to free up the LocalConnection name.
myBridge.close();
You can also check the status of your connection, and receive an event when the connection is established.
if (myBridge.connected) { ... do something ... }

myBridge.addEventListener(Event.CONNECT, handleConnect);
Here's a very simple (and ugly) demo of the system in action. It shows an AS3 SWF (top) communicating with a loaded AS2 SWF (bottom) through SWFBridge. Hopefully this is useful to someone. I planned to release it sooner, but never got around to it. Let me know in the comments if you encounter any issues. Flash CS3 is required to open the included demo FLAs, but these classes will work fine in Flex 2 or 3 as well. You can download it by clicking here.