图片上传类[UpLoadPic]
即时获得麻球游戏开发的最新消息,关注游戏开发者热门讨论,请各位开发者申请加入麻球官方群:121304476
也可以follow catfly围脖:t.sina.com.cn/iscat

看我写的一系列三篇文章,才好理解所有与拍照,上传图片相关的问题。

摄像头拍照或视频截图类:http://www.xncat.com/2009/12/catflash/334.html

图片上传类[UpLoadPic]:http://www.xncat.com/2009/12/catflash/340.html

保存图片到服务器类(php服务器):http://www.xncat.com/2009/12/catflash/368.html

————————————

不用说,做各种flash游戏或者互动应用的时候,让用户上传图片,或者自定义头像都会用到图片上传功能。为了能够灵活复用,我写了这个UpLoadPic类。

上传图片需要服务器端的支持,使用这个类的话,请给类中的upLoadAPI属性填写你的服务端接口地址,如 http://xxx.tudou.com/global/tool/upload_pic.php?fileType=.jpg 在这个类中。

为了预览上传的图片,我用到了ImageLoader类,这个类比较方便对加载的图片创建多个实例。

演示demo :

使用方法:

创建浏览按钮,上传按钮,友好提示文本,并依次把它们作为参数传递给UpLoadPic类即可。
通过UpLoadPic类的getPreviewPic()方法可以获得上传后的预览图片对象,它是一个Sprite类型对象。
也可以通过getPicUrl()方法获得上传后的图片地址。


var upLoadPic:UpLoadPic = new UpLoadPic(br_bt,up_bt,txt);
previewContent.addChild(upLoadPic.getPreviewPic());

这个类主要使用FileReference对象来实例选择本地图片与上传到服务器。


file=new FileReference();
file.addEventListener(Event.SELECT,selectHandler);
file.addEventListener(Event.CANCEL,cancelHandler);
file.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
file.addEventListener(ProgressEvent.PROGRESS,progressHandler);
file.addEventListener(Event.COMPLETE,completeHandler);
file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,dataHandler);

注意浏览的方法中加入对图片类型的限制,如
var fileFilter:FileFilter=new FileFilter(“文件类型”,”*.jpg;*,png;*.gif”);
file.browse([fileFilter]);

上传的方法中则需要加入对图片大小的限制与提示。


var fileSize:uint=file.size;
if (fileSize>1024*300) {
        this.uploadText.text="文件太大!请上传小于300k的图片";
}
//浏览
private function browseFunc(evt:MouseEvent):void {
        var fileFilter:FileFilter=new FileFilter("文件类型","*.jpg;*,png;*.gif");
        file.browse([fileFilter]);
}
//上传
private function uploadFunc(evt:MouseEvent):void {
        var fileSize:uint=file.size;
        if (fileSize>1024*300) {
                this.uploadText.text="文件太大!请上传小于300k的图片";
        } else {
                var url:String=upLoadAPI;
                var uploadURL:URLRequest=new URLRequest(url);
                uploadURL.method=URLRequestMethod.POST;
                file.upload(uploadURL);
        }
}

此类中也有isenabled方法,这是一个可以很方便给Sprite,MovieClip,SimpleButton等显示对象添加或移除鼠标事件的方法。
在另一篇文章《摄像头拍照或视频截图类》中有详细的说明。
示例原文件下载

猫抓鱼

4 Responses to “图片上传类[UpLoadPic]”

  1. Alvin 说:

    很好的教材~
    請問可以貼出php 原文件碼
    在下就差這一步  [引用]

Leave a Reply