情况描述:
使用的是Flash cs3 IDE环境,win7上部署了tomcat到Myeclipse中
启动tomcat,在IE地址栏中输入 http://localhost:8080/graduateDesign/demo/图片1.jpg
浏览器可以请求到图片资源并打开,但是在flash 中写的as3 代码就请求不到图片资源。
as3测试代码:
var _loader:Loader = new Loader();
_loader.load(new URLRequest("http://localhost:8080/graduateDesign/demo/图片1.jpg"));
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgComplete);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errHandle);
function imgComplete(event:Event):void
{
this.addChild(_loader);
}
function errHandle(event:IOErrorEvent):void
{
trace("Error:" + event);
}
测试和运行时会报错,找不到资源,如果把路径修改成英文的
_loader.load(new URLRequest("http://localhost:8080/graduateDesign/demo/1.jpg"));
则可以请求到资源。
去google了一下,并且在天地会上交流了一下,初步断定是tomcat的请求的编码的问题,采取如下措施:
1.设置tomcat的URIEncoding编码为 UTF-8
2.as3 请求资源的URI按照UTF-8 编码:
var _loader:Loader = new Loader();
var uri:String = "http://localhost:8080/graduateDesign/demo/图片1.jpg";
var encoded:String = encodeURI(uri);
_loader.load(new URLRequest(encoded));
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgComplete);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errHandle);
function imgComplete(event:Event):void
{
this.addChild(_loader);
}
function errHandle(event:IOErrorEvent):void
{
trace("Error:" + event);
}
测试,可以加载到图片资源
tomcat的编码需要继续研究。