2017-04-11 6 views
0

携帯電話をあるパターンで振動させて、ユーザーが指定した回数だけ繰り返すモバイルアプリケーションにループを書いています。アラートがALERT_NUMBER(パターンが繰り返される回数)の値に関係なく、一度だけ「振動」されるパターンをコメントアウトして、今すぐなぜ私のループはループ内のアラートだけを正しく反復するのですか?

do 
{ 
    navigator.vibrate([200,200,200,200,200,1000]); 
    //alert("v" + vibrator); 
    //alert("a" + alert_number); 
    vibrator++; 
} 
while (vibrator < alert_number); 

:以下のコードを参照してください。アラート()を有効にすると、パターンは正しい時間を繰り返しますが、ポップアップを閉じるためにアラートを数回押すだけで、必要ではありません。警報を持つことがループの動作に影響を与える理由は誰にでも分かりますか?

+1

遅延を追加する必要があると聞こえます。 – epascarello

+0

基本的に、振動のパターンはすべて同時に起こっています。私はそれが事実だったかもしれないと思ったが、それらを遅らせるための最善の方法を思いつくために苦労していた。 –

答えて

0

setIntervalを使用する方がよいでしょう。そうしないと、振動の間に遅延が必要になります。そうしないと、すべて一気に起こります。

など。

var vibrator = 0; 
var v_id = setInterval(function() { 
    navigator.vibrate([200,200,200,200,200,1000]); 
    if(vibrator++ == alert_number) { 
     clearInterval(v_id); 
    } 
}, 250); 
関連する問題