|
学前班
- 帖子
- 13
- 精华
- 0
- 威望
- 0 度
- 金币
- 61 枚
- 最后登录
- 2008-2-23
|
1#
大 中
小 发表于 2007-3-28 20:44 只看该作者
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 源代码的原代码,请知道的高手解释一下原理
|