views:

583

answers:

2

My flash app needs to know its own URL, so that it can load some (non-embedded) content using relative paths.

(I cannot hardcode the full paths because there will be multiple installs -- staging, production, etc. Nor can I use simple relative paths because there's one legacy install that uses a different relative path (ugh). And I cannot just embed the content, because it is shared. I need to get the full URL and then do some if statements with it.)

(Please note that the URL of the page into which the .SWF file is embedded will not work. The app is included in a CMS, so the page URLs can be quite different from the content URLs. I need the actual URL of the .SWF file.)

Can this be done programatically, or am I stuck with passing the URL as a parameter?

+1  A: 

mx.managers.BrowserManager

Adobe Flex LiveDocs

Accessing information about the current URL

gregjor
+7  A: 

In AS3, the URL of current swf file can be found via the LoaderInfo class instance. So in your main document class (or main stage frame script) this should give your the URL of your swf file:

this.loaderInfo.url

Every MovieClip has a loaderInfo member, that will give you its info.

LoaderInfo livedocs.

Tehnomaag
This could work as a pretty great anti theft device, have the swf abort playing if the url doesn't match your own.
Karl
You *can* do that, but it's pretty easily circumvented if you decompile and replace that string so don't trust it too much ;)
grapefrukt
Hi I tried to implement code to trace out the URL here, but with no luck :( http://stackoverflow.com/questions/2059288/how-to-obtain-url-that-flash-movie-is-embedded-on
Leon