0

フラッシュ保存方法でjquery Webcamプラグインを使用しています。ユーザーが保存をクリックした後にメッセージを設定して、保存していることを知らせたい。私のコードはこれです:

$('#savepicmessage').html("Saving picture, please wait");
webcam.capture();
webcam.save('/savephoto.php');

問題は、写真が保存された後にのみ「写真を保存しています」というメッセージが表示されることです。メッセージが表示されるまで実行されないように、.html("Saving picture, please wait") 呼び出しに続くコードの実行を防止する方法はありますか?

私はsetTimeoutでそれを達成し、そこから呼び出された関数でキャプチャと保存を行うことができますが、これは十分に信頼できません.

.when と deferred.then を見ましたが、うまくいかないようでした。

4

2 に答える 2

0

プラグインのドキュメントによると、プラグインのロードを次のように構成します。

 $("#camera").webcam({
    width: 320,
    height: 240,
    mode: "callback",
    swffile: "/download/jscam_canvas_only.swf",
    onTick: function() {},
    onSave: function() {

         $('#savepicmessage').html("Saving picture, please wait");

    },
    onCapture: function() {},
    debug: function() {},
    onLoad: function() {}
 }); 

以前にこのプラグインを使用したことがないため、これonSaveを行うかどうかはわかりませんが、初期化コードを表示すると、より役立つでしょう。onTickonCaptureonLoad

于 2012-07-05T20:23:50.697 に答える
0

一般に、AJAX 呼び出しやアニメーションなどの非同期処理を調整するために、Promise や $.when() などを使用します。しかし、これがほとんど非同期であるかのように動作しているという事実は、私にとって驚くべきことです。

ただし、提案があります。最初の呼び出しの後に $('#savepicmessage').html() をループして設定し、戻ってくるものをテストできますか? おそらく、返された値が設定しようとした値と一致すると、Web カメラ機能に陥り、Web カメラを呼び出す前にメッセージがユーザーに表示される可能性があります。

于 2012-07-05T21:15:25.973 に答える