检测外部文件的存在 |
| 作者:佚名 来源:闪吧 作者: holybozo 更新:2007-1-13 20:49:36 错误报告 我要投稿 |
早前看见有人讨论这个方法,当时我也没怎么在意,觉得用getBytesTotal();就应该可以完成,后来看见其实有个更好的办法 就是使用LoadVars类,举个例子,把下面的代码copy到第一帧,并在同一目录下建立两个文件,mySwf1.swf和mySwf2.swf.
|
var fileExists = new LoadVars(); fileExists._parent=this; fileExists.onLoad=function(success){ if(success) this._parent.loadMovie("mySwf2.swf"); } fileExists.load("mySwf1.swf");
|
| 以上代码: 第一行是声明一个LoadVars类的实例fileExists 第二行为此实例定义一个属性指向当前层,例子中即_root,因为LoadVars没有_parent属性,其实定义别的名字都可以,只是用_parent更一幕了然 第三行代码是一个onLoad事件,如果用过XML类,或者Sound类等加载过外部文件一定不会陌生,LoadVars的onLoad事件也一样,判断加载完毕,并有个参数success,当然名字也是自定义的 第四行就是判断是否有加载完毕了 第五行是如果第四行判断加载是完毕了,那么就loadMovie外部的mySwf2.swf文件,此时的this是指实例fileExists,this._parent就是第二行定义的一个属性 最后一行,是LoadVars的一个load方法,用来加载外部信息,例子中加载的是mySwf1.swf,此方法可以用来加载任何信息,哪怕是flash不能被加载入的,比如doc,exe....等等等,因为她只是判断是否有信息被加入,不过要记住的是,一定要有信息被加载才可以,换句话说就是:哪怕你load一个不知名文件,但是她是有大小的,那么onLoad中的success也会在信息加载完后执行,而如果load的哪怕是一个swf或者是一个txt,可是却是无大小的,好像一个字节也没有写入的txt大小为0bit的文件,onLoad的success是不会ok的 这里我做了一个简单的,用LoadVars来判断加载外部一串图片,名字按顺序排列,如果当中有号码的图片缺掉就直接跳下一个号码下载
|
counts = 0; path = "pic0"+(++counts)+".jpg"; var fileExists = new LoadVars(); fileExists._parent=this; // 因为LoadVars没有_parent属性,所以需要自定义一下,其实可以定义为别的名字,只是用"_parent" 更明确 fileExists.onLoad = function(success) { if (success) { var room = this._parent.createEmptyMovieClip("gallery"+counts, counts); room.loadMovie(path); //room._xscale=room._yscale=50; //room._x=counts*50; path = "pic0"+(++counts)+".jpg"; this.load(path); } else { // 载入图片一共8副,全部判断完毕就删除onLoad事件 if(counts>8) delete this.onLoad(); // 向后检测 path = "pic0"+(++counts)+".jpg"; room.loadMovie(path); this.load(path); } }; // load外部数据 fileExists.load(path);
| 源文件下载:
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |