Laan's steps..

Feed Rss

swf加载相对地址数据

07.08.2009, flash, by .

先说说swf的数据加载。

假设你的swf所在页面在http://www.laan.so/next/abc.html。如果你在swf加载数据“assets/data.xml”, 则数据加载指向http://www.laan.so/next/assets/data.xml;如果swf加载地址写的是“/assets/data.xml”,则数据指向http://www.laan.so/assets/data.xml。

当然了,如果你地址直接写“http://demi.cn/a/b/c/assets/data.xml”,不用想了,肯定还是“http://demi.cn/a/b/c/assets/data.xml”,绝对路径嘛。

以上均无需考虑swf在那个目录,反正数据加载是基于页面地址的。但是如果你想相对于swf地址加载数据怎么办呢?

1. 通过stage.loaderInfo.url来获取swf的地址,然后再进行绝对路径数据加载,比如:

var baseURL:String = stage.loaderInfo.url;

baseURL = baseURL.replace(/[^/].*$/, “”);

然后就可以加载数据 baseURL + “assets/data.xml”。

2. 使用flashplayer参数:

<pram name=”base” value=”…”>

可以指定value为别的网站地址,比如:http://demi8.cn/abc,这样的话flash就会基于http://demi8.cn/abc来加载数据了

swf加载相对地址数据 有 5 条回应

  1. 一般用第一种方法..
    现在不敢乱写相对路径..
    东西总是让程序员丢来丢去..
    一会说这个加载不到..
    一会说那个加载不到..

    回复
  2. stage.loaderInfo.url;还是挺常用的,呵呵

    回复
  3. 不错!感谢。

    回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>