Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не верно работает onmove в canvas.Подскажите плиз! (https://javascript.ru/forum/events/48822-ne-verno-rabotaet-onmove-v-canvas-podskazhite-pliz.html)

mrdeath4 18.07.2014 10:12

Не верно работает onmove в canvas.Подскажите плиз!
 
Доброго утра,
Хочу сделать, чтобы на нарисованной сетке в канвасе, при наведении на определенный квадрат, он подсвечивался.

http://learn.javascript.ru/play/35puh
вот в этой штуке, оно работает, но работает немного не так как я планировал.




У меня на странице, оно вообще не работает:
http://www.ravak.kiev.ua/aksiya/td2.html

для удобства вот код:
var tower1 = document.getElementById('tower1');
tower1.onclick = function ()
{
 build('tower1');
 createTower = true; 
} 

canvas.onmouseover = function ()
{
  mouseMove(event);
  if (createTower){ 
    context.fillStyle = "#29FF37";
    context.fillRect(ingameX*cellSize + ingameX, ingameY*cellSize + ingameY, cellSize, cellSize);
  }
} 


function build(tower)
{
  document.getElementById(tower).disabled = 'true';

  
}

function mouseMove(e)
{
  var mouseX, mouseY;

if (e.offsetX){
	mouseX = e.offsetX - canvas.offsetLeft;
	mouseY = e.offsetY - canvas.offsetTop;
}
else if (e.layerX){
	mouseX = e.layerX;
	mouseY = e.layerY;
}

ingameX = Math.floor((mouseX - Math.floor(mouseX/cellSize))/cellSize);
ingameY = Math.floor((mouseY - Math.floor(mouseY/cellSize))/cellSize);



}


Подскажите что я неверно сделал?

mrdeath4 18.07.2014 14:09

есть тут кто-то?

ixth 18.07.2014 18:42

У тебя событие на mouseover висит. Оно отрабатывает один раз, когда мышь пересекает границу канваса. Вот так работает как надо вроде: http://learn.javascript.ru/play/traBQb

mrdeath4 18.07.2014 18:49

Цитата:

Сообщение от ixth
У тебя событие на mouseover висит. Оно отрабатывает один раз, когда мышь пересекает границу канваса. Вот так работает как надо вроде: http://learn.javascript.ru/play/traBQb

Спасибо огромное! Вы гений.

mrdeath4 18.07.2014 18:51

А почему аналогичный код не работает на сайте?


Часовой пояс GMT +3, время: 09:04.