Flash实例:Flash+asp扫描文件夹展示图片
思路:
用ASP的FSO(这个思路是刚才一位朋友在回贴中提到的,所以我才想起要做这个东东,呵呵)对象来扫描同文件夹下的JPG,并输出文件名。这里用ASP输出XML格式让FLASH加载,虽然不太喜欢XML,但大家都觉得它规范一些,就输出它吧。演示效果下载后再看吧!
我的文件夹中只放了9个图片,但无论添加还是减少都直接上传或者删除就行了,不需要去改FLASH也不需要修改ASP。费话少说,代码+注释+源文件如下(IIS环境测试才有效):
FLASH中的代码:
importflash.filters.BlurFilter; importflash.filters.DropShadowFilter; ////============初始化=========== varb_filters:BlurFilter=newBlurFilter(5,5,1); vard_filters:DropShadowFilter=newDropShadowFilter(5,45,0,80,10,10); varn:Number=newNumber(); varurl_array=newArray(); //这里是设置SWF与ASP的相对路径,虽然可以在ASP中比较得出,但感觉没有必要 varpath_str:String="images/"; functiongo_func(){ if(n<url_array.length-1){ n++; load_func(); }else{ trace("加载完成!"); } } //============MCL类=========== var_mcl:MovieClipLoader=newMovieClipLoader(); this.onLoadInit=function(_mc:MovieClip){ _mc._txt.removeTextField(); _mc._width=80; _mc._height=80; _mc.filters=[b_filters,d_filters]; //============这里设置鼠标动作=========== _mc.onRollOver=function(){ this.filters=null; }; _mc.onRollOut=function(){ this.filters=[b_filters,d_filters]; }; go_func(); }; //如果没有下面的代码,就会一个加载出错,导致后面的都不能加载,用这个可以出错时继续向下加载,源文件中我故意少了一个图片,让它出错 this.onLoadError=function(_mc:MovieClip){ _mc.createTextField("_txt",200,20,10,60,30); _mc._txt.textColor=0xff0000; _mc._txt.text="加载失败!"; go_func(); }; //=========加载进度显示============== this.onLoadProgress=function(_mc:MovieClip,bytesLoaded:Number,bytesTotal:Number){ _mc.createTextField("_txt",200,20,10,60,30); _mc._txt.textColor=0xff0000; _mc._txt.text=Math.floor((bytesLoaded/bytesTotal*10000)/100)+"%"; }; _mcl.addListener(this); //=================load函数======== functionload_func(){ this.createEmptyMovieClip("pic_mc"+n,n+100); //如果要改成竖向加载,只需把下面的_x_y换一下就行了 this["pic_mc"+n]._y=30+Math.floor(n/3)*100; this["pic_mc"+n]._x=100+n%3*100; _mcl.loadClip(path_str+url_array[n],this["pic_mc"+n]); } //===========XML文件加载========= varurl_xml=newXML(); url_xml.ignoreWhite=true; url_xml.onLoad=function(suc){ if(suc){ for(vard:Number=0;d<this.firstChild.childNodes.length;d++){ url_array.push(this.firstChild.childNodes[d].firstChild.nodeValue); } load_func(); }else{ trace("XML文件加载失败!"); } }; url_xml.load(path_str+"showjpg.asp");
ASP:
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%> <% DimthisPath,FSO,fileItem,allFolder thisPath=Server.MapPath(Request.ServerVariables("SCRIPT_NAME"))’得到ASP文件的路径 SetFSO=createobject("scripting.filesystemobject")’创建FSO对像 SetallFolder=FSO.GetFile(thisPath).parentfolder.files’得到ASP所在目录的父级对像,它就包括了这个ASP和我们放的图片 Response.write("<?xmlversion=""1.0""encoding=""utf-8""?>")’开始输出XML Response.ContentType="text/XML" Response.Write("<path>") ForEachfileItemInallFolder’想当于FLASH中的遍历,遍历整个对像中的元素 Iflcase(right(fileItem.name,4))=".jpg"Then’如果后缀是JPG Response.Write("<url>"+fileItem.name+"</url>")’就把它的文件名输出为XML的一个新节点 EndIf Next Response.Write("</path>") Response.End() %>
本文示例代码或素材下载
主题测试文章,只做测试使用。发布者:绘画吧,转转请注明出处:http://www.huitu8.com/shejijiaocheng/Flashjiaocheng/20190810/49254.html