如何异步上传带有ActionScript的文件?

时间:2011-02-03 12:33:47

标签: flash file-upload

注意:我根本不了解Flash / ActionScript。

我正在使用Jquery webcam plugin从相机中捕捉图片。此插件提供ActionScript代码,用于将捕获的图片上载到服务器。它工作正常,除了一件事 - 当文件正在上传我的网页冻结。

我在哪里可以阅读有关使用Flash上​​传异步文件的内容,或者我应该如何更改以下代码以异步上传文件?

public static function save(file:String):Boolean {


            if ("stream" == mode) {

            return true;

        } else if (null != buffer) {

            if ("callback" == mode) {

                for (var i = 0; i < 240; ++i) {

                    var row = "";
                    for (var j=0; j < 320; ++j) {
                        row+= buffer.getPixel(j, i);
                        row+= ";";
                    }
                    ExternalInterface.call("webcam.onSave", row);
                }

            } else if ("save" == mode) {

                if (file) {

                    var e = new JPGEncoder(quality);

                    var sal = {};
                    sal.sendAndLoad = XML.prototype.sendAndLoad;
                    sal.contentType = "image/jpeg";
                    sal.toString = function() {
                        return e.encode(JSCam.buffer);
                    }

                    var doc = new XML();
                    doc.onLoad = function(success) {
                        ExternalInterface.call("webcam.onSave", "done");
                    }

                    sal.sendAndLoad(file, doc);
/*
                    ExternalInterface.call('webcam.debug', "error", "No save mode compiled in.");
                    return false;
*/
                } else {
                    ExternalInterface.call('webcam.debug', "error", "No file name specified.");
                    return false;
                }

            } else {
                ExternalInterface.call('webcam.debug', "error", "Unsupported storage mode.");
            }

            buffer = null;
            return true;
        }
        return false;

}

1 个答案:

答案 0 :(得分:0)

Pedro Correia分享了一个实现异步上传的actionscript class。它有点旧(AS2,2007),但可能有所帮助。