В настоящее время я пытаюсь понять анимацию с использованием JavaScript и HTML5. Из того, что я собрал после исследования в Интернете, requestAnimationFrame неоднократно вызывает метод.simple requestAnimationFrame не работает JavaScript
Я создал плоскость и создал метод, который будет перемещать плоскость по диагональной линии. Однако, кажется, нет анимации.
Я довольно новичок в этом, так что это может быть просто не совсем понятное понятие. Я не думаю, что это связано с моим браузером, поскольку я пробовал его как в Chrome, так и в Internet Explorer, и они должны быть в курсе, поскольку я только установил их несколько месяцев назад, так как это новый ноутбук.
Вот мой основной класс, он должен включать в себя все Релевент код:
/*global window, document, alert, Vector, Moth, Matrix, Plane, SceneGraphNode*/
function onLoad() {
var mainCanvas, mainContext, planePosition, plane;
// this function will initialise our variables
function initialiseCanvasContext() {
// Find the canvas element using its id attribute.
mainCanvas = document.getElementById('mainCanvas');
// if it couldn't be found
if (!mainCanvas) {
// make a message box pop up with the error.
alert('Error: I cannot find the canvas element!');
return;
}
// Get the 2D canvas context.
mainContext = mainCanvas.getContext('2d');
if (!mainContext) {
alert('Error: failed to get context!');
return;
}
planePosition = new Vector(0, 0, 0);
plane = new Plane(planePosition);
}
function translate(pPosition) {
var matrix = Matrix.createTranslation(pPosition);
matrix.transform(mainContext);
}
function scale(pPosition) {
var matrix = Matrix.createScale(pPosition);
matrix.transform(mainContext);
}
function rotate(pPosition) {
var matrix = Matrix.createRotation(pPosition);
matrix.transform(mainContext);
}
function drawPlane() {
scaleVector = new Vector(0.25, 0.25, 0);
scale(scaleVector);
translate(new Vector(0, 0));
rotate(0);
plane.draw(mainContext);
}
function drawMoth() {
var moth, mothPosition;
mothPosition = new Vector(mainCanvas.width/2, mainCanvas.height/2, 0);
moth = new Moth(mothPosition);
moth.draw(mainContext);
}
function drawPlane() {
plane = new Plane(planePosition);
scale(new Vector(0.25, 0.25, 0));
plane.draw(mainContext);
}
function animatePlane() {
translate(planePosition.add(new Vector(100, 100, 0)));
drawPlane();
window.requestAnimationFrame(animatePlane);
}
initialiseCanvasContext();
drawMoth();
animatePlane();
}
window.addEventListener('load', onLoad, false);
Пожалуйста, дайте мне знать, если вы думаете, что это поможет увидеть любые связанные с ними методы. Я также приложил результат.
Обновите свой вопрос, включив в него весь соответствующий код. Когда & где эти две функции называются? –
Привет, я обновил его сейчас, извините за это – lucycopp
Есть ли у вас какие-либо ошибки на вашей консоли? – balapa