flash 文件是否存在判断代码
作者:
因在制作播放器列表,想判断一下音乐文件是否存在,于是上网查了一下,大部分代码为
复制代码 代码如下:
var exist = new LoadVars();
exist.onLoad = function(success) {
if(!success) {
trace("文件不存在");
}
}
exist.load("文件名");
此代码应该说严重误导我们,onLoad事件指的是把文件下载完后执行的代码。如果只判断本机文件还可以,因为不用下载,如果是判断网络文件就麻烦了,如果你要判断网上一部电影,对不起,等下载完这部电影才告诉你是否存在。
于是我想到应该只判断该文件是否存在,只判断一下它有没有内容,即getBytesTotal(),获取它总共多少字节,如果当前没有执行加载操作或者尚未开始加载操作,此方法将返回 undefined。如果无法确定总字节数(例如,如果下载已开始但服务器尚未传输 HTTP Content-Length),此方法也将返回 undefined。于是我们可以这样判断文件是否存在:
复制代码 代码如下:
var exist = new LoadVars();
this.createEmptyMovieClip("item_mc", this.getNextHighestDepth());
item_mc.onEnterFrame=function(){
var total =this.target.getBytesTotal();
if(int(total)>101){
//这里没有使用total==undefined判断,因为发现不准,文件不存在时int(total)=101
delete item_mc.onEnterFrame;
trace("文件存在");
trace(int(total));//返回总字节
}
}
item_mc.target=exist;
exist.load("文件地址");