flex中的绝对路径与相对路径的问题
这个问题调试了好久啊 请高手回答
我在昨天就遇到在flex中 关于路径的引用问题 ,一直没有调试成功:
现在贴出我在引用时的代码:
文件:test.as:(在目录:flex_src/demo/actionScript/test.as目录下)
[code=Java][/code]
public function init():void
{
var url:URLRequest=new URLRequest("../../xmlfile/3.1.1a.xml");
var loader:URLLoader=new URLLoader();
loader.addEventListener(Event.COMPLETE, completehandler);
loader.load(url);
}
引用的xml文件:3.1.1a.xml的目录为:flex_src/demo/xmlfile/3.1.1a.xml
在运行时提示一下错误:
Error #2044: 未处理的 ioError:。 text=Error #2032: 流错误。 URL: http://localhost:8080/xmlfile/3.1.1_01a.xml
请问:1 在 URLRequest()里面的地址我该怎么写?
2 请解释一下关于flex中的路径的问题
3 能否在 URLRequest()里面写本地地址?如果可以 该怎么写?(我在编译参数里面加-use-network=false 后还是不行)
[解决办法]
1>在 URLRequest()里面的地址我该怎么写
里面就是URL就可以,可以是http://localhost:8080/xmlfile/3.1.1_01a.xml这样的绝对路径,也可以是../../xmlfile/3.1.1a.xml这样的相对路径。
2>你在这个里面用的是相对路径,这个相对,应该是指生成的swf与要读取文件的相对。
你现在是以代码test.as所在位置来判断相对路径,可能是不对的。你再重新试试
3>你指的本地地址是什么意思? 就是不是放到web 容器里面运行,在Flex项目下运行,文件放到flex项目下吗?
这样是可以的,如果访问的文件在flex外面,可能会受到安全沙箱的限制而无法访问。
[解决办法]
你的错误信息是什么?
Error #2044: 未处理的 ioError:。 text=Error #2032: 流错误。 URL: http://localhost:8080/xmlfile/3.1.1_01a.xml
你是在flex项目启动的话 应该不会出http://localhost:8080/,会出现windows路径。
你是在通过Tomcat,运行的吧?(test.swf在java项目里面)
如果是这样,把xmlfile/3.1.1a.xml放到java项目里面。比如放到WebContext下xmlfile/3.1.1a.xml
这样的话,URL就是http://localhost:8080/(虚拟目录)/xmlfile/3.1.1a.xml
"我的本地地址是指:假设我在D盘上有一个这样的:D:/testxml/books.xml 该文件在flex项目外面
不能引用吗? "
由于安全沙箱的限制,是不能引用的
[解决办法]
var url:URLRequest=new URLRequest("../../xmlfile/3.1.1a.xml");
你这个事相对于项目的路径
或者
var url:URLRequest=new URLRequest("/项目名/xmlfile/3.1.1a.xml");