我将 SWF 托管在一个域上,比如说 www.aaa.com。我将该 swf 嵌入到 www.bbb.com 上的 html 页面中。现在,在 SWF 中,如何获得嵌入 SWF 的域,即在我的示例 www.bbb.com 中?
我可以通过 javascript 执行此操作,然后将域名传递给 as3,但由于某些要求,我想从 SWF 中执行此操作。另外,我不想将我的 SWF 加载到 www.bbb.com 上的另一个 SWF 中。
任何答案...?
我将 SWF 托管在一个域上,比如说 www.aaa.com。我将该 swf 嵌入到 www.bbb.com 上的 html 页面中。现在,在 SWF 中,如何获得嵌入 SWF 的域,即在我的示例 www.bbb.com 中?
我可以通过 javascript 执行此操作,然后将域名传递给 as3,但由于某些要求,我想从 SWF 中执行此操作。另外,我不想将我的 SWF 加载到 www.bbb.com 上的另一个 SWF 中。
任何答案...?
你说你在 bbb 域上嵌入了 flash,所以我猜你可以访问 bbb 的服务器页面生成器。
在这种情况下,我只会在 flashVars 中包含域名,例如:topdomain=<?php echo(urlencode($_SERVER['SERVER_NAME'])); ?>
然后访问 swf 中的 topdomain 变量。如果它是未定义的,假设它是从其他地方嵌入的
是的,您可以在任何精灵中执行此操作:
//this will work in any pure AS3 class
var sp:Sprite = new Sprite;
trace(sp.loaderInfo.url);
如果您使用的是 Flex,请在将子项添加到舞台/显示列表后执行此操作。
要获取域,您可以使用正则表达式来解析 url,或者只查找“http://”和“/”之间的字符串。