Pythonの基本(Coursera RICEコースで学んだこと)からJavascriptに移行する際に、同じパラダイムを使用してハンドラを登録しようとしています。変換する。両方のタイマーと、更新ハンドラが実行されていない。この例では JSとCanvasでイベントハンドラを登録する
、:何も変更しませんでしたcanvas.addEventListener("draw", draw(), false);
と
canvas.addEventListener("update", update(), false);
を追加
//Globals
var message = "test message";
var positionX = 50;
var positionY = 50;
width = 500;
height = 500;
var interval = 2000;
//handler for text box
function update(text) {
message = text;
}
//handler for timer
function tick() {
var x = Math.floor(Math.random() * (width - 0) + 0);
var y = Math.floor(Math.random() * (height - 0) + 0);
positionX = x;
positionY = y;
}
//handler to draw on canvas
function draw(canvas) {
ctx.font="20px Georgia";
ctx.fillText(message,positionX,positionY);
}
//create a frame
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
canvas.width = width;
canvas.height = height;
//register event handlers
setInterval(tick, interval);
draw();
//start the frame and animation
<html>
<head>
</head>
<body>
Enter text here :
<input type="text" onblur="update(this.value)">
<canvas id="myCanvas" style="border:1px solid #000000;"></canvas>
<script>
</script>
</body>
</html>
。
draw();
関数をtick();
関数の中に追加したのは唯一の機能でしたが、関数が機能するようにテキストを保持していて、画面上にランダムに複製していました。一般的なノートで
、あなたたちは、現在のパラダイムだと思います:
//Global state
//Handler for text box
//Handler for timer
//Handler to draw on canvas
//Create a frame
//Register event handlers
//Start the frame animation
はJSとキャンバスを追求する価値がありますか?
お返事ありがとうございます。
K.
おかげでたくさんBlindmanは、実際に私は '描く()を追加することによって、あなたの最初のアドバイスに従ってきました。 width、ctx.canvas.height); 'tick();'関数の中のメソッドで、完全に動作します! – xGLUEx