2011-02-03 7 views
1

注:私はFlash/ActionScriptについて全く気づいていません。ActionScriptでファイルを非同期でアップロードするにはどうすればよいですか?

私はカメラの画像をキャプチャするためにJquery webcam pluginを使用しています。このプラグインは、キャプチャした画像をサーバにアップロードするActionScriptコードを提供します。それは1つのことを除いてうまくいきます - ファイルが私のウェブページをフリーズしてアップロードしている間。

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

Pedro Correiaは、非同期アップロードを実装するactionscript classを共有しました。少し古いですが(AS2、2007)、助けになるかもしれません。

+0

アップロードを実際に開始する前に、クラスのユーザーがアップロードするファイルを選択する必要があるようです。しかし、私はメモリにデータを持っていて、実際にはローカルファイルを持っていません –

関連する問題