实例介绍
【实例简介】
flash 多文件上传组件 支持自由新增添加删除,代码里设置 最大支持同时6个上传,可以修改成无限,在网页前段体验非常好
【实例截图】
【核心代码】
import flash.net.FileReference;
import flash.net.FileFilter;
import flash.events.*;
import mx.controls.Alert;
import mx.controls.ProgressBar;
import mx.managers.PopUpManager;
public var add:FileReference=new FileReference();
public var names:int=1;//动态控件名字后缀
public var namesArry:Array=new Array();
public var file:Array=new Array();
public var produceID:String;
public var upNumber:int=0;//自动上传文件数目
public var infoList:String;//用户数据
private var showP:showPanel;
private var cnShowP:cnShowPanel;
private function Inot():void
{
showPa();
var args:String=Application.application.parameters["id"];
Security.allowDomain("部署网站的域名");
if(args==null)
{
produceID="0";
}
else
{
produceID=args;
}
AddUpLoad();
AddUpLoad();
//AddUpLoad();
add.addEventListener(Event.SELECT,Fileok);
add.addEventListener(Event.COMPLETE,DownOver);
add.addEventListener(ProgressEvent.PROGRESS,onProgress);
}
private function showPa():void
{
showP=showPanel(PopUpManager.createPopUp(this,showPanel,true));
PopUpManager.centerPopUp(showP);
//cnShowP=cnShowPanel(PopUpManager.createPopUp(this,cnShowPanel,true));
//PopUpManager.centerPopUp(cnShowP);
}
private function DownOver(evt:Event):void//上传完成事件处理
{
this.Uptext.text="上传完毕,可继续选择文件上传";
IsComplte("t1",1);
// this.Label1.visible=false;
//this.ProgressBar1.visible=false;
}
private function AddUp(evt:Event):void //选择上传文件
{
var imageTypes:FileFilter = new FileFilter("file (*.mp4,*.wmv,*.rmb,*.MPG)","*.mp4;*.wmv;*.rmb;*.MPG");
var allTypes:Array = new Array(imageTypes);
add.browse(allTypes);
ProgressBar1.label="当前进度0%";
this.Label1.text="已上传:";
var s:String="#FFFFFF";
ProgressBar1.setStyle("themeColor",s);
}
private function Fileok(evt:Event):void//获取文件名
{
this.Uptext.text=add.name;
}
public function onProgress(e:ProgressEvent):void//上传进度显示
{
var s:String="#4CE417";
ProgressBar1.setStyle("themeColor",s);
this.Label1.text="已经上传:" e.bytesLoaded/1000 "KB 总共:" (e.bytesTotal/1024/1024).toString().substring(0,5) "MB";
var proc:uint=e.bytesLoaded/e.bytesTotal*100;
this.ProgressBar1.setProgress(proc,100);
this.ProgressBar1.label="当前进度:" proc "% ";
}
private function cbk():void //上传处理
{
//新增
if(checkInfo()==false)
{
return;
}
if(this.Uptext.text!="上传完毕,可继续选择文件上传" && this.Uptext.text!="")
{
//this.Label1.visible=true;
//this.ProgressBar1.visible=true;
getInfo();
infoList=encodeURI(infoList);
var request:URLRequest=new URLRequest("http://服务器接收端地址/upFile/default.aspx?info=" infoList);
add.upload(request);
//fileUpFile.upload(request);
stateDis();
if(file.length!=0)
{
for(var i:int=0;i<file.length;i )
{
var text:String=TextInput(this.panel1.getChildByName("textInput" (i 2).toString())).text;
if(text!="上传完毕,可继续选择文件上传"&&text!="")
{
upNumber =1;//记录上传文件总数
FileReference(file[i]).upload(request);
}
}
}
}
else
{
if(this.Uptext.text=="" || this.Uptext.text=="上传完毕,可继续选择文件上传")
{
Alert.show("请从第一个开始选择文件");
}
}
// var alert:Alert=new Alert();
//Alert.show("请选择上传文件","提示框",Alert.YES|Alert.NO,this,onAlertClose);
}
private function getFileName(names:TextInput):void
{
names.text=add.name;
}
private function AddUpLoad():void//动态添加上传控件
{
if(file.length<5)
{
var Time:Date=new Date();
names=names 1;
//<添加文本框>
var textInput:TextInput=new TextInput();
textInput.name="textInput" names;
textInput.editable=false;
textInput.width=215;
textInput.height=25;
textInput.x=57;
//<添加上传进度条>
var progressBar2:ProgressBar=new ProgressBar();
progressBar2.width=215;
progressBar2.minimum=0;
progressBar2.maximum=100;
progressBar2.x=57;
progressBar2.label="当前进度:0%";
progressBar2.mode="manual";
progressBar2.name="progressBar" names;
var color:String="#4CE417";
var height:int=20;
progressBar2.setStyle("themeColor",color);
progressBar2.setStyle("trackHeight",height);
//<添加进度条显示框>
var LabelShow:Label=new Label();
LabelShow.text="已上传:";
LabelShow.x=168;
LabelShow.name="LabelShow" names;
//<添加按钮>
var btnUp:Button=new Button();
btnUp.label="选择文件";
btnUp.x=289;
btnUp.name="btnUp" names;
btnUp.addEventListener(MouseEvent.CLICK,addUp1);
//处理y坐标
var kk:Array=this.panel1.getChildren();
var x1:int=0;
var x2:int=0;
var x3:int=0;
for(var i:int=0;i<this.panel1.numChildren;i )
{
if(kk[i] is TextInput)
{
if(TextInput(kk[i]).y>x1)
{
x1=TextInput(kk[i]).y;
}
}
if(kk[i] is ProgressBar)
{
if(ProgressBar(kk[i]).y>x2)
{
x2=ProgressBar(kk[i]).y;
}
}
if(kk[i] is Label)
{
if(Label(kk[i]).y>x3)
{
x3=Label(kk[i]).y;
}
}
}
textInput.y=x1 85;//50
btnUp.y=x1 85;
progressBar2.y=x2 85;
LabelShow.y=x3 85;
//添加控件到panel
this.panel1.addChild(textInput);
this.panel1.addChild(btnUp);
this.panel1.addChild(progressBar2);
this.panel1.addChild(LabelShow);
//** 动态更改不变控件的位置
this.panel1.height=this.panel1.height 85;
this.btnAddButton.y=this.btnAddButton.y 85;
this.btnClearButton.y=this.btnClearButton.y 85;
this.btnUpFile.y=this.btnUpFile.y 85;
//动态增加上传控件
var file1:FileReference=new FileReference();
file.push(file1);//添加FireRefrence对象到file数组中
}
else
{
Alert.show("最多一次同时上传6个文件");
}
}
网友评论
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
支持(0) 盖楼(回复)