O'Reilly logo

Actionscript Cookbook by Joey Lott

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required