15.2. Loading an External SWF from a Trusting Domain

Problem

You want to load an external .swf file into your Flash movie, but the .swf file resides within a different domain.

Solution

Use the allowDomain( ) method from within the .swf file you want to load to create a trusting relationship between the domains.

Discussion

The System.security.allowDomain( ) method allows you to create trusting relationships between .swf files in different domains. The allowDomain( ) method must be called from within the .swf file you wish to load. Therefore, this technique is applicable only if you want to load .swf files to which you can add the allowDomain( ) method call. Otherwise, see Recipe 15.6 to load content by a proxy script.

Here is a scenario in which you can use allowDomain( ) to create a trusting relationship: you have two .swf files, my.swf and your.swf. The my.swf movie is on www.mydomain.com, and your.swf is on www.yourdomain.com. If you want my.swf to be able to load your.swf, add the following line to your.swf:

System.security.allowDomain("mydomain.com");

This line of code tells your.swf to allow itself to be loaded by any movies in the mydomain.com domain. The my.swf movie can then load your.swf using a standard loadMovie( ) method call:

// Create myMovieClip using createEmptyMovieClip(  ).
_root.createEmptyMovieClip("myMovieClip", 1);

// Load the trusting .swf file into myMovieClip.
myMovieClip.loadMovie("http://www.yourdomain.com/your.swf");

If you want to allow your.swf to be loaded ...

Get Actionscript Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.