참고 : 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 인 ActionScript 2에 있습니다. jpg 인코딩 이미지와 같은 항목은 ActionScript 3의 현재 버전에서 훨씬 빠릅니다. 카메라에 액세스하기위한 또 다른 jQuery 플러그인을 찾으면 AS3을 사용하는 것이 가장 좋습니다. –