1
注意:我完全不知道使用Flash/ActionScript。如何異步上傳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;
}
ActionScript中的文件上傳是異步的。沒有經過測試,我猜想這是導致凍結的上載以外的東西(例如可能是像素循環,getPixel()部分)。代碼位於ActionScript 2的舊版本ActionScript 2中。在當前版本的ActionScript 3中,像jpg編碼圖像的東西要快得多。如果您可以找到另一個用於訪問攝像頭的jQuery插件,使用AS3的更近期的插件,我想這是最好的。 – 2011-02-03 17:19:42