Local Connections

  • A LocalConnection object is used to invoke a method in another LocalConnection object, either within a single SWF file or between multiple SWF files.
  • ActionScript 3.0 can communicate with LocalConnection objects created in ActionScript 1.0 or 2.0 and the reverse is true. Flash * Player handles this communication between LocalConnection objects of different versions automatically.
  • You can use LocalConnection objects to send and receive data within a single SWF file, but this is not a typical implementation
  • The sending SWF:
    • contains the method to be invoked
    • must contain a LocalConnection object
    • a call to the send() method passing the connectionName, methodName and arguments
  • The receiving SWF
    • invokes the method in the sending
    • must contain another LocalConnection object
    • a call to the connect() method passing the connectionName argument
  • Same domain connections are the easiest because Flash Player allows same-domain communication by default.
  • Use the allowDomain() method on the receiving SWF to allow communication between different domains with predictable domain names.
  • To avoid specifying the domain name in the send() method, but to indicate to Flash Player that the receiving and sending LocalConnection objects are not in the same domain, precede the connection name with an underscore (_), in both the connect() and send() calls.

previous page next page

Your Rating:
2 rates

Learn more

Example code: Two Flex 3 Applications Communicating over a LocalConnection

Below are two completely separate Flex applications, each runs in its own "space". They both use the LocalConnection class one sending a task to the other. The sending application uses the send() method of the LocalConnection class to send the task. It also registers an event handler function to receive status messages as to the success or failure of the send.
The Receiver application uses the connect() method of the LocalConnection class to "sign up" and then handles actual messages as they are sent.



Rendered Example TaskSender

Rendered Example BasicTaskReceiver

previous page next page

  1. Mar 24, 2009

    What if I have two SWF's where one is loaded into the other via SWFLoader? Should I still use LocalConnection in that case, or there another better way to communicate between the two?

    In this particular case, they both run in the system domain so that they don't try to use each other's imported WSDL reference and CSS.

  2. Mar 24, 2009

    To answer my own question above, I found LocalConnection works fine with SWFLoader. I also found it is a good idea to call Close() in the reciever once the message is recieved, if the object that instatiates the LocalConnection is closed and opened more than once in an app, like say in a TitleWindow.

  3. Dec 08, 2009

    I've been trying  localConnection, I actually copied your example.  They both through errors ( flex Builder3) the send application, Error 1061 (call to a possibly undefined  method send through a reference with static type LocalConnection ).

     On the receiving application, Error 1046 ( Type was not found or was not a compile- time constant:LocalConnection) , thats the first error here the second, 1180 (call to a possibly undefined method LocalConnection.