2011-02-03 3 views
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; 

} 
+0

ActionScript에서 파일 업로드가 비동기입니다. 그것을 테스트하지 않고서는, 그것이 고정 (아마 픽셀 이상의 반복, getPixel() 부분과 같이)을 일으키는 업로드 이외의 것 같아요. 이 코드는 이전 버전의 ActionScript 인 ActionScript 2에 있습니다. jpg 인코딩 이미지와 같은 항목은 ActionScript 3의 현재 버전에서 훨씬 빠릅니다. 카메라에 액세스하기위한 또 다른 jQuery 플러그인을 찾으면 AS3을 사용하는 것이 가장 좋습니다. –

답변

0

페드로 코레 비동기 업로드를 구현하는 actionscript class을 공유했습니다. 조금 오래되었지만 (AS2, 2007), 도움이 될 것입니다.

+0

업로드를 실제로 시작하려면 클래스 사용자가 업로드 할 파일을 선택해야합니다. 하지만 메모리에 데이터가 있고 실제로 로컬 파일이 없습니다. –

관련 문제