Я пытаюсь создать очень простую анимационную функцию. Я использую этот учебник, чтобы создать свой проект:комплектTimeout() не работает в функции анимации | Анимация не работает
https://www.youtube.com/watch?v=hUCT4b4wa-8
Результат после нажатия кнопки должен быть зеленый ящик перемещения по странице слева направо. Когда кнопка нажата, ничего не происходит, и я не получаю никаких консольных ошибок.
Вот моя скрипка: https://jsfiddle.net/xkhpmrtu/7/
А вот отрывок из моего кода:
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<style type="text/css">
canvas {
border: 1px solid #666;
}
</style>
<script type="application/javascript" language="javascript">
function anim(x,y) {
var canvas = document.getElementById('canvas');//reference to canvas element on page
var ctx = canvas.getContext('2d');//establish a 2d context for the canvas element
ctx.save();//save canvas state if required (not required for the tutoriral anaimation, but doesn't hurt the script so it stays for now)
ctx.clearRect(0, 0, 550, 400);//clears the canvas for redrawing the scene.
ctx.fillStyle = "rgba(0,200,0,1)";//coloring the rectangle
ctx.fillRect = (x, 20, 50, 50);//drawing the rectangle
ctx.restore();//this restores the canvas to it's original state when we saved it on (at the time) line 18
x += 5; //increment the x position by some numeric value
var loopTimer = setTimeout('draw('+x+','+y+')', 2000);// setTimeout is a function that
</script>
</head>
<body>
<button onclick="animate(0,0)">Draw</button>
<canvas id="canvas" width="550" height="400"></canvas>
</body>
Любая идея, что я делаю неправильно?
проверить имя функции в JS скрипт 'аним (0,0)' его неправильное заявление – prasanth
вы имеете 'функцию anim' объявил, ваш клик вызывает' animate' и ' Функция anim' вызывает 'draw', используя аргумент строки устаревшей (плохой практики) для' setTimeout' ... –
также, 'ctx.fillRect' - это функция, но вы назначаете ей значение' (x, 20, 50 , 50) '- это не то, как вызываются функции, вы хотите' ctx.fillRect (x, 20, 50, 50); '- все исправления применяются, вы получаете https://jsfiddle.net/xkhpmrtu/9/ –