+ -
当前位置:首页 → 问答吧 → FLASH+ASP扫描文件夹展示图片,自由添加

FLASH+ASP扫描文件夹展示图片,自由添加

时间:2007-09-12

来源:互联网

刚才没事干,来试试这个功能的实现。
思路:
用ASP的FSO(这个思路是闪吧一位朋友在回贴中提到的,所以我才想起要做这个东东,呵呵)对象来扫描同文件夹下的JPG图片,并输出文件名
这里用ASP输出XML格式让FLASH加载,虽然不不太喜欢XML,但大家都觉得它规范一些,就输出它吧。

先看演示地址:
http://www.flash023.cn/test/jpg/jpg.swf
我的文件夹中只放了9个图片,但无论添加还是减少都直接上传或者删除就行了,不需要去改FLASH也不需要修改ASP

费话少说,代码+注释+源文件如下(IIS环境测试才有效):

FLASH中的代码:
复制内容到剪贴板
代码:
import flash.filters.BlurFilter;
import flash.filters.DropShadowFilter;
////============初始化===========
var b_filters:BlurFilter = new BlurFilter(5, 5, 1);
var d_filters:DropShadowFilter = new DropShadowFilter(5, 45, 0, 80, 10, 10);
var n:Number = new Number();
var url_array = new Array();
//这里是设置SWF与ASP的相对路径,虽然可以在ASP中比较得出,但感觉没有必要
var path_str:String = "images/";
function go_func() {
    if (n<url_array.length-1) {
        n++;
        load_func();
    } else {
        trace("加载完成!");
    }
}
//============MCL类===========
var _mcl:MovieClipLoader = new MovieClipLoader();
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函数========
function load_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文件加载=========
var url_xml = new XML();
url_xml.ignoreWhite = true;
url_xml.onLoad = function(suc) {
    if (suc) {
        for (var d: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"%>
<%
Dim thisPath,FSO,fileItem,allFolder
thisPath = Server.MapPath(Request.ServerVariables("SCRIPT_NAME")) '得到ASP文件的路径
Set FSO = createobject("scripting.filesystemobject")'创建FSO对像
Set allFolder = FSO.GetFile(thisPath).parentfolder.files '得到ASP所在目录的父级对像,它就包括了这个ASP和我们放的图片
Response.write("<?xml version=""1.0"" encoding=""utf-8""?>")'开始输出XML
Response.ContentType = "text/XML"
Response.Write("<path>")
For Each fileItem In allFolder '想当于FLASH中的遍历,遍历整个对像中的元素
  If lcase(right(fileItem.name,4))=".jpg" Then '如果后缀是JPG
  Response.Write("<url>"+fileItem.name+"</url>")'就把它的文件名输出为XML的一个新节点
  End If
Next
Response.Write("</path>")
Response.End()
%>
[ 本帖最后由 HBrO 于 2007-9-12 21:05 编辑 ]

附件

FLASH+ASP显示图片.rar (139.88 KB)

2007-9-12 19:43, 下载次数: 1182

作者: flash023   发布时间: 2007-09-12

很不错,省事!

作者: 31342610   发布时间: 2007-09-12

下个来试试!呵!

作者: woodhhm   发布时间: 2007-10-23

测试地址坏了

作者: 浪闪   发布时间: 2007-10-24

收藏学习!

作者: zero09   发布时间: 2007-10-24

不错的说
谢谢lz拉
下载好好研究下

作者: horsesky   发布时间: 2007-10-24

测试地址打不开了!

作者: apaper   发布时间: 2007-11-23

喜欢 不错的东西

作者: 119874288   发布时间: 2007-11-23

不行  啊
都打不开啊
怎么弄的

作者: 119874288   发布时间: 2007-11-23

我试着更改了一些参数;问下楼主,如何通过文件名来获取啊,还有点击一福图片后;能现在大的图片就好了。我正在给一个公司做产品展示部分,如果能用到你的技术就好了。希望赐教!

作者: hydfzp   发布时间: 2007-11-24

023你太强了```

作者: 17526918   发布时间: 2007-11-24

很不错,可以做出远程图片管理器哦

作者: kenjor01   发布时间: 2007-11-25

太好了。喜欢收藏啦

作者: saintlulu   发布时间: 2007-11-26

我改成PHP的看下效果,没有ASP的空间测试 .呵呵

作者: oklrc   发布时间: 2007-11-28

收藏

作者: deiphi   发布时间: 2007-12-11

好东西!

作者: leilins   发布时间: 2008-03-21

还好呢,都打不开网页

作者: clys001   发布时间: 2008-03-28

引用:
原帖由 clys001 于 2008-3-28 10:26 发表
还好呢,都打不开网页
看帖子也要留意下发帖时间吧~

作者: FlashDJ   发布时间: 2008-03-28

先顶一下再看

作者: guozhen037058   发布时间: 2008-03-28

flash.rar

PHP版的已经改好.只是更改了images目录下的showjpg.php

作者: oklrc   发布时间: 2008-04-01

这几天偶然看到这个 http://fpv.cn/fpv4/
应该也是用的楼主这个方法吧

作者: flashnetjava   发布时间: 2008-04-01

哈哈 不错 刚好全部看得懂

作者: include   发布时间: 2008-04-02

不知能不能显示某个文件夹下的SWF文件,并能点击播放。

作者: sxshx   发布时间: 2008-04-02

道理一样

作者: include   发布时间: 2008-04-02

我照着做了,也在IIS中调试,可就老是“加载失败!”

作者: sxshx   发布时间: 2008-04-02

收藏了!

作者: zyj1022   发布时间: 2008-04-02

谢谢啊,呵呵,不错的

作者: chjf2008   发布时间: 2008-04-08

虽然很久前就看了,但是我还是觉得相当不错

作者: HBrO   发布时间: 2008-04-09

看不到效果!

作者: ycanzl   发布时间: 2008-04-28

不错,很好很强大,下来看看

作者: 350096270   发布时间: 2009-08-09

太厉害了!

作者: kaokiyo   发布时间: 2009-08-11

呵呵 根据这个思路 我也做了个 AS3+php的。。
查看地址:http://www.akeying.cn/blog/post/19.html

作者: key1105   发布时间: 2009-08-11

好想下载看看!!!

作者: answermay   发布时间: 2009-08-13

找了很久了,都没有找到有遍历的flash播放器,一般都需要自己改xml 楼主高才·· 在下佩服佩服

作者: seegui   发布时间: 2011-04-06