热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

flash上传类带自动压缩功能

现在相片比较大,好几M,直接上传比较麻烦package{importcom.adobe.images.JPGEncoder;importc

现在相片比较大,好几M,直接上传比较麻烦


package {import com.adobe.images.JPGEncoder;import com.adobe.images.PNGEncoder;import flash.display.Bitmap;import flash.display.BitmapData;import flash.display.DisplayObject;import flash.display.DisplayObjectContainer;import flash.display.Loader;import flash.display.LoaderInfo;import flash.display.Sprite;import flash.events.Event;import flash.events.IOErrorEvent;import flash.events.MouseEvent;import flash.geom.Matrix;import flash.geom.Rectangle;import flash.net.FileFilter;import flash.net.FileReference;import flash.utils.ByteArray;import flash.display.MovieClip;import fl.controls.Button;import flash.text.TextFormat;import flash.text.TextFieldAutoSize;import fl.controls.Label;import flash.external.ExternalInterface; import flash.net.FileFilter;import flash.net.FileReference;import flash.net.FileReferenceList;import flash.events.*; import flash.net.navigateToURL;import flash.net.URLRequest;import flash.net.URLVariables;import flash.events.Event;import flash.net.URLLoader;import flash.net.*;public class upload extends MovieClip {private var fileUpload:FileReferenceList = new FileReferenceList();private var serverUrl:String = 'upload.php';private var imgWidth:Number = 980;private var imgHeight:Number = 650;private var imgQuality:Number = 80;private var imgtype:Number = 0;private var jsFunction:String = ''; private var sessionid:String = ''; private var uploadid:String = ''; private var upfile:Array=new Array();private var btnname:String = "选择上传图片"; private var infobar:Label = new Label();public function upload() {// constructor codetrace("hello word!");var parameters:Object= root.loaderInfo.parameters;if(parameters != null){if(parameters["serverUrl"] != null){serverUrl = String(parameters["serverUrl"]);}if(parameters["imgWidth"] != null){imgWidth = Number(parameters["imgWidth"]);}if(parameters["imgHeight"] != null){imgHeight = Number(parameters["imgHeight"]);}if(parameters["imgQuality"] != null){imgQuality = Number(parameters["imgQuality"]);}if(parameters["jsFunction"] != null){jsFunction = String(parameters["jsFunction"]);}if(parameters["uploadid"] != null){uploadid = String(parameters["uploadid"]);}if(parameters["btnText"] != null){btnname = String(parameters["btnText"]);}if(parameters["sessionid"] != null){sessiOnid= String(parameters["sessionid"]);} if(parameters["imgtype"] != null){imgtype = Number(parameters["imgtype"]);} }var myButton:Button = new Button();myButton.label = btnname;myButton.width = 100;myButton.height = 30;myButton.move(10,10);var t1:TextFormat=new TextFormat();t1.bold=true;t1.size=14;myButton.setStyle("textFormat",t1);this.addChild(myButton);infobar.请选择图片,可以多选!";this.addChild(infobar);//点击事件,选择图片myButton.addEventListener(MouseEvent.CLICK,buttonClick);fileUpload.addEventListener(Event.SELECT, selectHandler);fileUpload.addEventListener(Event.COMPLETE, loadImageComplete); fileUpload.addEventListener(IOErrorEvent.IO_ERROR, function(evt:IOErrorEvent):void{infobar.text="加载图片失败!错误信息:" + evt.text;});fileUpload.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(evt:SecurityErrorEvent):void{infobar.text="加载图片失败!错误信息:" + evt.text;});}private function selectHandler(e:Event):void {//处理选择图片infobar.text="选择了"+ e.target.fileList.length +"个图片。";upfile=new Array();var file:FileReference; for (var i:uint = 0; i imgWidth || bitmap.height > imgHeight){if(bitmap.width > bitmap.height){ asize=imgWidth / bitmap.width;nw=true; } if(bitmap.height > bitmap.width){ bsize=imgHeight / bitmap.height; nh=true; } if(nw && nh){ if(asize imgHeight){bsize=Math.round((ysize-imgHeight)/2);ysize=imgHeight;}if(asize>imgWidth){asize=Math.round((asize-imgWidth)/2);xsize =imgWidth;} imageData= new BitmapData(xsize,ysize);shiftOrigin= new Matrix();shiftOrigin.scale(rsize,rsize); shiftOrigin.translate(-asize,-bsize); }else if(imgtype==1){//缩放到固定大小if(bitmap.width > imgWidth || bitmap.height > imgHeight){if(bitmap.width > imgWidth){ asize=imgWidth / bitmap.width;nw=true; } if(bitmap.height > imgHeight){ bsize=imgHeight / bitmap.height; nh=true; } if(nw && nh){ if(asize bitmap.width){xsize = bitmap.width;asize=0;}else{xsize = imgWidth;} if(imgHeight>bitmap.height){ysize = bitmap.height;bsize=0;}else{ysize = imgHeight;} imageData= new BitmapData(xsize,ysize);shiftOrigin= new Matrix();shiftOrigin.scale(rsize,rsize); shiftOrigin.translate(-asize,-bsize);}else{//默认不大于if(bitmap.width > imgWidth || bitmap.height > imgHeight){if(bitmap.width > imgWidth){ asize=imgWidth / bitmap.width;nw=true; } if(bitmap.height > imgHeight){ bsize=imgHeight / bitmap.height; nh=true; } if(nw && nh){ if(asize




推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
author-avatar
海and云
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有