2017-03-26 6 views
0

私はCanvasでテキストを作成したいと思います。パーサーはDos Console内のパーサのように永久に点滅する必要があります。パーサはグローバル変数として保存されます。 jQueryを使ってグローバル変数の文字を永久に変更するにはどうすればよいですか?jQuery:文字列内の文字を点滅させる

var canvas = document.getElementById('canvas'), 
    context = canvas.getContext('2d'), 
    string = '',  //Empty string which combines command, parser and '>' character 
    start_cmd ='>', //The character '>' starts before the command 
    command = '', //Typed characters 
    parser = '_'; //Parser which appears at the end of 'command' 

    $(document).on('keypress', function(event) { 
     string = start_cmd + command + parser; 
     $(document).clear();    //Self declared function which makes the whole canvas white.  
     $(document).drawConsole();   //Self declared function which draws the console. 
     $(document).println(string, 10, 550);//Self declared function which writes what you last typed in the keyboard. 

     switch (event.which) 
     {   
      case 8: 
        command = command.slice(0, -1);    
        $(document).clear(); 
        $(document).drawConsole(); 
        break; 
      case 13: 
        command = ''; 
        $(document).clear(); 
        $(document).drawConsole();   
        break; 
      default: 
        if (command.length < 46) 
        { 
         $(document).clear(); 
         $(document).drawConsole();      
         command += String.fromCharCode(event.which);       
        }   
        break; 
     } 
      string = start_cmd + command + parser; 

      $(document).println(string, 10, 550);  
      console.log(event.which); 
    }); 
}); 
+0

?これまでのコードはどのように見えますか?どのような問題が発生しましたか?他人があなたを助けることができるようにこれらの質問に対処してください。 –

+0

いくつかのコードを表示できますか? – Rajesh

+0

だから、短縮形でコードを追加しました。自己宣言された関数は、パーサー変数とは何の関係もありません。 –

答えて

1

これを実装するための最良の場所は、おそらくあなたprintln()方法になります。文字列から最後の文字を削除する間隔を作成することができます。これは常に_になるか、または追加します。あなたはすでに試してみました何

let visible = true; 
 
setInterval(() => { 
 
    let t = document.getElementById('foo'); 
 
    visible = !visible; 
 
    t.innerText = visible ? t.innerText.trim().slice(0, -1) : (t.innerText + "_"); 
 
}, 200);
<div id="foo"> 
 
    foo 
 
</div>