Stephen Bailey
Stephen Bailey

Reputation: 1941

Flash AS3 : Error #1014 : When loading remotely but not locally

Starting with a blank project, when I load a SWF which has a dependence on ISomeInterface defined in a swc which is compiled into my blank project

var lc:LoaderContext = new LoaderContext( true, ApplicationDomain.currentDomain );
var loader:Loader = new Loader();                       
loader.load( new URLRequest( "Some.swf"), lc );

Not too surpisingly all is good as the interface it requires is already in the application domain into which it has been loaded.

However, when I load the same file from a remote url

loader.load( new URLRequest( "http://127.0.0.1/Some.swf"), lc );

I get the evil

[Fault] exception, information=VerifyError: Error #1014: Class ISomeInterface could 
not be found

What am I missing that makes these different?

Upvotes: 1

Views: 1456

Answers (2)

Stephen Bailey
Stephen Bailey

Reputation: 1941

My issue appears to have been 2 fold

1) When loading the asset locally, it will by default be loaded into the correct security domain. However, when loading from a web site, I need ensure that I set the security domain correctly

new LoaderContext( true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain )

2) However, you can only use the SecurityDomain when the swf you are doing the loading from was actually itself loaded remotely :

Security.sandboxType == Security.REMOTE

So no mix mode of local and remote. In the end it was a matter of simply loading the first SWF from a website, and adding the correct SecurityDomain.

In my searching, this was the best discorse I found on the topic of Security Domains and Applciation Domains http://www.senocular.com/flash/tutorials/contentdomains/

Upvotes: 1

francis
francis

Reputation: 6349

Since your testing locally you might want to check this out:

http://jansensan.net/flash-player-security-settings-to-develop-locally

Essentially go to the Flash Player security page:

http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

Click Edit Location -> Add location

Add the project folder or your filesystem root.

Upvotes: 0

Related Questions