zoukankan      html  css  js  c++  java
  • 仿新浪微博上传头像组件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>
    View Code

    修改后的文件下载

    点击下载修改后的swf文件(右键,目标另存为)。压缩包下载

      

  • 相关阅读:
    个人作业Week2-代码复审
    个人项目-数独
    个人作业-Week1
    第零次个人作业
    mysql统计某个指标之和大于指定值的记录
    Redis命令行查询缓存值
    Grep命令
    Log4j配置文件中指定日志路径
    Cadence OrCAD17.2禁止和启用start page的设置方法
    Linux内核实现透视---kthread_work
  • 原文地址:https://www.cnblogs.com/randytech/p/4139285.html
Copyright © 2011-2022 走看看