2011-10-26 23 views
0

私はいくつかの画像操作に取り組んでいます。私は基本的なキャンバスを作ろうとしていますが、今はテキストボックスがあります。テキストを入力するとキャンバス上ですぐに変わるはずです。キャンバスとXとYの位置を記録します。私はどのようにそれを行うのですか?ここでHTML5キャンバスを使って作業する

は私のコードです:

<!DOCTYPE html> 
<html> 
<head> 
<title>HTML5 Canvas</title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<script type="text/javascript"> 

    var drawLogo = function() { 
     var canvas = document.getElementById('my_canvas'); 
     var context = canvas.getContext('2d'); 
     context.font = 'italic 40px sans-serif'; 
     context.textBaseline = 'top'; 
     context.fillText('Some text', 60, 0); 

    }; 

    $(function() { 
     var canvas = document.getElementById('my_canvas'); 
     if (canvas.getContext) { 
      drawLogo(); 
     } 
    }); 
</script> 
</head> 
<body> 
<canvas id="my_canvas" width="900" height="300"> 
Fallback content here 
</canvas> 
    <input id="Text1" type="text" /> 
</body> 
</html> 

答えて

2

まず、あなたが再描画キャンバス全体する必要があります毎回テキストが変更されます。あなたのdrawLogo関数に& Y入力をX、MYTEXTを追加

  • を::

    これを行うdrawLogo(MYTEXT、x、y)とcontext.fillTextにこの行を変更する(MYTEXT、x、y)は;

  • キャンバス上のテキストを変更するには、JSイベントハンドラをテキストボックスに追加し、3つの入力パラメータすべてを渡す新しいdrawLogo関数を呼び出します。
  • Canvasに描かれているものは変更できないことに注意してください。一度しか描くことができないので、すべての修飾子を1回のパスで実行する必要があります。
  • 可動部分は明確ではありませんが、事前にJSの運動方程式を計算する必要があります。新しいdrawLogo(myText、x、y)を呼び出すと、JSからこれらの値が渡されます。
  • この行に注意してください。context.textBaseline = 'top';最後にFirefoxでサポートされていないことを確認しました。
関連する問題