У меня есть объект «Graphics» в JS, который я использую в качестве контейнера для элемента canvas.Javascript: событие изменения размера дважды срабатывает при каждом событии
Графические объекты просто берет в холст и устанавливает его ширина, высота и т.д.
я эта функция вызывается на событие изменения размера:
Graphics.prototype.resize = function(){
this.canvas.width = (this.canvas.width > window.innerWidth)
? window.innerWidth : someDefaultVar;
//And same for width...
alert(this.canvas.width); //Alert for test purposes
};
Предполагая, что окно canvas.width < .innerWidth и window.innerWidth = 205 это предупреждение выход для каждого изменения размера:
Оригинал Ширина
Я озадачен тем, почему его зовут дважды, что приводит к тому, что холст не изменяет размер.
В моей анимации цикла я использую объект как так:
window.addEventListener("load",Main,false); //Added from comment response,
//load eventlistener
function Main(){
var canvas = new Graphics(width, height ..); //Object containing the canvas
window.addEventListener("resize", OnResize,false); //Add the event listener
// for resize
function OnResize(){
canvas.resize(); //Call the function named above
}
function AnimLoop(){
canvas.draw();
requestAnimationFrame(AnimLoop);
}
AnimLoop(); //Call AnimLoop entering starting the animation
}
Можно ли определить проблему?
Заранее спасибо
Сколько раз называется «Главная»? Функция 'addEventListener' на самом деле ** добавляет ** прослушиватель событий, не затрагивая ранее добавленных слушателей. – Pointy
Однажды, извините, забыл добавить точку входа для главной. Редактирование сейчас. –
Ну, я все равно оставил бы 'console.log()' там, чтобы быть уверенным. – Pointy