仿新浪微博上传头像组件FaustCplus.swf 修复版
因系统需要,网上下载了这个文件。界面效果如图:
但是很可惜,部分系统访问报错。
错误一:无法选择照片。点击本地照片无反应。
网上寻找了好久也没有找到新版本,但是有老版本的flash源文件,只是有人提过可能是as文件的判断语句问题,硬着头皮下载flash自己修改。先下载的flash 8,打不开。看来用的是高版本的flash做的,再下载flash cs3。还是打不开。好吧,下载个flash cs6,终于打开了。
找到sourcecode\view\browse\BrowseComp.as文件
可以看到有对flash版本的判断,但是仅判断了9,10,11,12版本,多余的版本就直接break了。
是不是很汗……从10到20版本都调用的是同一段代码。当然了,改成if判断更好
private function onFileSelected(event:Event) : void { this._fileRef.removeEventListener(Event.SELECT, this.onFileSelected); this._fileRef.removeEventListener(Event.CANCEL, this.onCancel); if (this.Version == 9) { this._parent.localPicArea.loaddingUI.visible = true; this._parent.localPicArea.loaddingUI.play(); if (this._parent.localPicArea.tip != null) { this._parent.localPicArea.tip.visible = false; } this.uploadFile(); } else if (this.Version > 9) { this._fileRef.load(); this._fileRef.addEventListener(Event.COMPLETE, this.refPicOK); } }
生成,使用。好,可以选择本地图片了。问题二来了。
错误二:可以选择图片,但是点击保存无反应。
继续百度中。终于找到原因了,很抱歉,忘记了这位大哥的名字。是json的问题!老版本的flash不能解析json,需要引用外部组件,但是新版本的自带json decode,无须外引组件。从而造成错误。
打开sourcecode\view目录下的CutView.as
1、注释掉开头的json组件引用语句。
2、更改Json的decode函数。
重新生成swf文件。终于可以用了。
使用方法:
1、需要准备的文件
jquery-1.11.0.min.js
swfobject.js
FaustCplusNew.swf
expressInstall.swf
以及上传后的文件处理函数。
2、界面代码
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>上传头像</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <link href="/Contents/css/default.css" rel="stylesheet" type="text/css" /> <script src="/Contents/js/jquery-1.11.0.min.js" type="text/javascript"></script> <script type="text/javascript" src="/Contents/js/swfobject.js"></script> <script src="/Contents/js/default.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function () { var flashvars = { "jsfunc": "uploadevent", "imgUrl": "/Contents/images/defaultagentphoto.jpg", "pid": "75642723", "uploadSrc": true, "showBrow": true, "showCame": true, "uploadUrl": "/CommFunc/UploadPhoto.ashx?action=userphoto" }; var params = { menu: "false", scale: "noScale", allowFullscreen: "true", allowScriptAccess: "always", wmode: "transparent", bgcolor: "#FFFFFF" }; var attributes = { id: "FaustCplus" }; swfobject.embedSWF("/Contents/JSFrameWork/photoeditor/FaustCplusNew.swf", "altContent", "630", "450", "9.0.0", "expressInstall.swf", flashvars, params, attributes); }); function uploadevent(status, url) { alert("hello,world"); status += ‘‘; switch (status) { case ‘-1‘: //取消操作 break; default: if (status.indexOf("|||") <= 0) { alert(typeof (status) + ‘ ‘ + status); } else { var str1 = status.split("|||")[0]; var str2 = status.split("|||")[1]; switch (str1) { case ‘1‘: var origin = $.dialog.open.origin; origin.$("#AgentPhoto").val(str2); origin.$("#userphoto").attr("src", str2); $.dialog.close(); break; case ‘-5‘: $.dialog.alert("上传失败", "图片上传失败,请稍后再试!错误原因:" + str2, 2); break; default: break; } } } } </script> </head> <body> <div id="altContent"></div> </body> </html>
修改后的文件下载
点击下载修改后的swf文件(右键,目标另存为)
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。