打印

[提问] Down2.0 源代码

Down2.0 源代码

程序代码/******
本程序需要IE5.5+支持,Flash Player 8.0+支持.
编译需要Notepad.exe以及Flash Pro 8
******/



  文件包括:

      
  • readme.txt(说明文件)
  • main.flv(Flash主要文件)
  • main.html(浏览的脚本代码)



Flash Action Script部分重要代码
程序代码
//DataGrid组件显示信息
var sname:Array = ["文件名称", "状态", "大小", "完成数", "百分比", "用时", "剩余时间", "速度"];
var swidth:Array = [0.3, 0.1, 0.1, 0.1, 0.09, 0.1, 0.1, 0.11];
_gd.vScrollPolicy = "auto";
_gd.rowHeight = 20;
_gd.dataProvider = _dat;
for (var n:Number = 0; n<8; n++)
{
    _gd.getColumnAt(n).headerText = sname[n];
    _gd.getColumnAt(n).width = _gd._width*swidth[n];
}


//下载监控代码.
listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void  {
    var fn:Number = sw(file.name, _dat);
    var tn:Number = sw(file.name, _time);
    var gn:Number = sw(file.name, _get);
    var fust:Number = Math.floor((getTimer()-Number(_time[tn].c))/1000);
    var fspeed:Number = Math.floor(bytesLoaded/1000/fust);
    _get[gn].d = bytesLoaded;
    _get[gn].t = bytesTotal;
    _dat[fn].fsize = btm(bytesTotal);
    _dat[fn].fcom = btm(bytesLoaded);
    _dat[fn].fm = Math.floor(bytesLoaded/bytesTotal*100).toString()+"%";
    _dat[fn].ftime = ttt(fust);
    _dat[fn].fltime = ttt(Math.floor((bytesTotal-bytesLoaded)/(fspeed*1000)));
    _dat[fn].fspeed = fspeed+" KB/S";
    _gd.dataProvider = _dat;
};


//定时刷新
function fchange() {
    var dl:Number = _dat.length;
    var tn, gn, fust, fspeed:Number;
    for (var n:Number = 0; n<dl; n++)
    {
        if (_dat[n].fs == "下载中")
        {
            tn = sw(_dat[n].fname, _time);
            gn = sw(_dat[n].fname, _get);
            fust = Math.floor((getTimer()-Number(_time[tn].c))/1000);
            fspeed = Math.floor(_get[gn].d/1000/fust);
            _dat[n].fltime = ttt(Math.floor((_get[gn].t-_get[gn].d)/(fspeed*1000)));
            _dat[n].ftime = ttt(fust);
            _dat[n].fspeed = fspeed.toString()+" KB/S";
            _gd.dataProvider = _dat;
        }
    }
}



//时间转换函数
function ttt(ti:Number):String {
    var th, tm, ts:String;
    var tt:Number = 0;
    if (ti>=3600)
    {
        tt = ti%3600;
        th = ((ti-tt)/3600).toString();
        th = bu(th);
    }
    else
    {
        th = "00";
        tt = ti;
    }
    if (tt>=60)
    {
        ti = (tt%60);
        tm = ((tt-ti)/60).toString();
        tm = bu(tm);
        ts = ti.toString();
    }
    else
    {
        tm = "00";
        ts = ti.toString();
    }
    ts = bu(ts);
    th = th+":"+tm+":"+ts;
    return th;
}
function bu(s:String):String {
    (s.length<2) ? s="0"+s : s=s;
    return s;
}



//文件大小转换代码
function btm(by:Number):String {
    var r:String;
    if (by>=1000000)
    {
        if (by%100000 == 0)
        {
            r = (by/1000000).toString()+" MB";
        }
        else
        {
            r = (by/100000).toString().slice(0, (by/100000).toString().indexOf("."));
            r = r.slice(0, r.length-1)+"."+r.slice(r.length-1, r.length)+" MB";
        }
    }
    else if (by>=1000 && by<1000000)
    {
        if (by%100 == 0)
        {
            r = (by/1000).toString()+" KB";
        }
        else
        {
            r = (by/100).toString().slice(0, (by/100).toString().indexOf("."));
            r = r.slice(0, r.length-1)+"."+r.slice(r.length-1, r.length)+" KB";
        }
    }
    else
    {
        r = by.toString()+" byte";
    }
    return r;
}






  完整的请看源件.



Java Script部分重要代码
程序代码

//建立表格.自动排列,加亮,添加事件触发.
        function cre(){
        var lis = 4;
        var al = a.length;
        var alv = al%lis;
        var an = (al-alv)/lis;
        var na=0;
        var sn = 20;
        //
        var oT=document.createElement("table");
        oT.style.width="100%";
        for(var n1 = 0; n1<an; n1++){
            var or = document.createElement("tr");
            for (var n2 = 0; n2<lis;n2++){
                var od = document.createElement("td");
                var oa = document.createElement("a");
                var s1 = a[na].url.slice(a[na].url.lastIndexOf("/")+1,a[na].url.lastIndexOf("."));  
                if(s1.length > sn){
                    s2 = s1.slice(0,sn)+"..";
                }else{
                    s2 = s1;
                }
               
                oa.appendChild(document.createTextNode(s2));
                oa.title = s1;
                oa.style.fontSize="14";
                switch (a[na].lv) {
                    case "0":
                        oa.style.color="#696969";
                        break;
                    case "1":
                        oa.style.color="#ff9999";
                        break;
                    case "2":
                        oa.style.color="#ff6699";
                        break;
                    case "3":
                        oa.style.color="#ff3399";
                        break;
                    case "4":
                        oa.style.color="#ff0099";
                        break;
                }
                oa.style.cursor="hand";
                od.style.width="25%";
                od.appendChild(oa);
                od.onClick="ca(\""+na+"\")";
                or.appendChild(od);
                na++;
            }
            oT.appendChild(or);
        }
        var odiv=document.getElementById("div");
        odiv.innerHTML=oT.outerHTML;
        }





自此,Down2.0算是完工了,虽然数据库和表现页面连在一起让人很不满意,但也算过得去.
  Down3.0的制作也结束了.

这个是Down2.0 源代码的原代码,请知道的高手解释一下原理

TOP

大家研究一下

大家研究一下,我是个菜鸟,对这些问题不懂

怎么没有人研究啊

我给世纪黑马的管理员研究
他已经搞出来了,呵呵,以后更爽了

TOP

Processed in 0.096275 second(s), 5 queries, Gzip enabled