Adobe 帮助文档这样说的:
通过本地连接,可以在 SWF 文件之间进行这种通信,而不用使用 fscommand() 或 JavaScript。LocalConnection 对象只能在运行于同一台客户端计算机上的文件之间进行通信,但这些文件可以在不同的应用程序中运行。例如,浏览器中运行的文件和 Adobe AIR 中运行的 SWF 文件。

ActionScript 3.0 中创建的 LocalConnection 对象可以与 ActionScript 1.0 或 2.0 中创建的 LocalConnection 对象通信。反之亦然:ActionScript 1.0 或 2.0 中创建的 LocalConnection 对象可以与 ActionScript 3.0 中创建的 LocalConnection 对象通信。Flash Player 可自动处理不同版本 LocalConnection 对象间的通信。

可以使用三种方式将回调方法添加到 LocalConnection 对象:

使 LocalConnection 类成为子类,并添加方法。
将 LocalConnection.client 属性设置为实现方法的对象。
创建扩展 LocalConnection 的动态类,并动态附加方法。
为了了解如何使用 LocalConnection 对象在两个文件之间进行通信,了解每个文件中使用的命令非常有用。一个文件被称为接收方文件;该文件中包含要调用的方法。接收方文件中必须包含一个 LocalConnection 对象和对 connect() 方法的调用。另一个文件被称为发送方文件;这是调用方法的那个文件。发送方文件中必须包含另一个 LocalConnection 对象和对 send() 方法的调用。

send() 和 connect() 的使用将有所不同,这取决于 文件是在同一个域中、在具有可预知域名的不同域中还是在具有不可预知域名(即动态域名)的不同域中。下文将说明这三种不同的情况,并针对每种情况分别提供代码示例。

1.在同一个域名下。
一个swf中,先new一个LocalConnection,然后connect一个地址。再准备一个方法,用来接收另外一个swf发送过来的消息。另外一个swf也new一个LocalConnection,它不需要connect,它只需要send消息就可以了。通常发送消息,是在被点击等情况下触发的。它send的时候,里边的参数需要注意。第一个参数是前边一个connect地址,第二个参数,你想发送给的方法,就是前边一个准备好的方法。当然还可以有更多的参数,后边的参数,就是你所发送方法的参数。
接收端:

import flash.net.LocalConnection;

var nc:LocalConnection = new LocalConnection();
nc.client = this;
nc.connect("www.vini123.com");

function receiveMsg():void
{
    trace("兄弟们,我收到啦!");
}

发送端:

import flash.net.LocalConnection;

var nc:LocalConnection = new LocalConnection();
nc.send("www.vini123.com" , "receiveMsg");

2.具有可预知域名的不同域。
这种情况,在接受端和发送端都需要做点处理。在接收端端,需要制定发送到这里的域。也就是发送端的域。eg:

nc.allowDomain("www.hao123.com");

在发送端,也要制定接收端的域,同上。在send的时候,还要带上域:eg

nc.send("www.vini123.com:www.vini123.com" , "receiveMsg");

3.具有不可预知域名的不同域。
这个时候,都不知道双方的域的时候,就用*号代替。其他的都一样。

4.从Flash Player 到AIR应用程序。
在 AIR 应用程序沙箱中创建的 LocalConnection 对象使用一个特殊字符串作为连接前缀,而不是使用域名。此字符串的格式为 app#appID.pubID,其中,appID 是应用程序 ID,pubID 是应用程序的发行商 ID。(如果 AIR 应用程序使用发行商 ID,则仅包括发行商 ID。)例如,如果 AIR 应用程序的应用程序 ID 为“com.example”,没有发行商 ID,则您可以使用 app#com.example:myConnection 作为本地连接字符串。AIR 应用程序还必须调用 allowDomain() 方法,传入调用 SWF 文件的原始域:
AIR端(接受端):

import flash.net.LocalConnection;

var nc:LocalConnection = new LocalConnection();
nc.allowDomain("www.vini123.com");
nc.connect("www.vini123.com");

function receiveMsg():void
{
    trace("兄弟,我收到啦!");
}

Flash Player 端(发送端):

var nc:LocalConnection = new LocalConnection()
nc.send('app#com.example:www.vini123.com', 'receiveMsg');

5.从一个 AIR 应用程序到另一个 AIR 应用程序。
要在两个 AIR 应用程序之间进行通信,您需要通过调用 allowDomain() 方法并传入发送方 AIR 应用程序的连接前缀,来允许两者之间的通信。例如,如果发送方应用程序的应用程序 ID 为“com.example”,没有发行商 ID,您可以将字符串 app#com.example 传递给接收方应用程序中的 allowDomain() 方法。还需要在 send() 方法中使用接收方 LocalConnection 对象的连接前缀限定连接名:

import flash.net.LocalConnection;

var nc:LocalConnection = new LocalConnection();
nc.allowDomain("app#com.example");
nc.connect("www.vini123.com");

function receiveMsg():void
{
    trace("兄弟,我收到啦!");
}

var nc:LocalConnection = new LocalConnection()
nc.send('app#com.sample:www.vini123.com', 'receiveMsg');

上边本来在两个swf中的。我写到一个swf里边啦。

上边的种种,来源于adboe帮助文档:as3 帮助文档

上边说的这些,是最基本,最基础的东西。对于,在项目中,在实际的应用中,我们又该如何应用了。以及会遇到一些什么问题呢。
如果几个接收端同时connect同一个地址,这个时候会报错的。于是,我们可以用try{}catch(e:Error){}。

            try
            {
                conn.connect("www.vini123.com");
            }
            catch (error:ArgumentError)
            {
                trace("Can't connect...the connection name is already being used by another SWF");
            }

如果AS3与AS3之间,可用有其他的方式可用通讯。如果AS3与AS2之间呢,他们avm不一样。想要两者之间通讯,LocalConnection就很好了。
我先来创建一个场景,想象一下,有这么两个swf:main.swf,gril.swf。main.swf是as3写的,而gril.swf是as2写的。girl.swf里边有个girl在移动,当点击girl的时候,想让main.swf去加载另外一个swf或做其他的事情。这个时候,我们用LocalConnection试试吧。可是,girl.swf又该如何知道main.swf所connect的地址呢。也许你会说,两个swf都是我做的,我把地址写死不就行了么。如果这样,就缺少灵活性。并且,如果某人同时打开几个main.swf怎么办。方法还是有的,在as2中,_root就派上用场了。在加载gril.swf的时候,以get的方式带一个参数,as2通过_root就能获取到了。在这里,connect的地址,我们用随机的。

main.swf 里边:

import flash.display.Loader;
import flash.net.URLRequest;
import flash.net.LocalConnection;

var aHash:int = int(Math.random() * 0xFFFFFF);

var loader:Loader = new Loader();
var request:URLRequest = new URLRequest();
request.url = "girl.swf?address=" + aHash;
loader.load(request);
addChild(loader);

var nc:LocalConnection = new LocalConnection();
nc.client = this;
nc.connect("vini123" + aHash);

function receiveMsg(str:String):void
{
    trace("girl.swf对我说:" + str);
}

girl.swf 里边:

btn.onRelease = function()
{
    var nc:LocalConnection = new LocalConnection();
    nc.send(("vini123" + _root.address),"receiveMsg" , "其实,我是喜欢你的!");
}

这样,as3和as2就可以通讯了。