Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   canvas ии события (https://javascript.ru/forum/events/12811-canvas-ii-sobytiya.html)

KOLANICH 04.11.2010 00:46

canvas ии события
 
я ввёл в канвас свою систему координат
нужно получить координаты клика мышью относительно моей системы координат

Sweet 04.11.2010 01:40

Найди расстояние до точки отсчета своей системы и отнимай его от координат клика:)

KOLANICH 04.11.2010 01:46

var x=evt.pageX-ctx.canvas.offsetX-ctx.canvas.width/2;
		var y=evt.pageY-ctx.canvas.offsetY-ctx.canvas.height/2;
		console.log(x,y);//NaN NaN

Sweet 04.11.2010 01:49

Начни с
console.log(evt.pageX, ctx.canvas.offsetX,ctx.canvas.width/2);
Может откроет глаза:)

2de 04.11.2010 11:42

Извиняюсь за офф-топ, а что есть канвас и где об этом написано?

Sweet 04.11.2010 11:47

А что, на гугле забанили???
UPD: google/search

2de 04.11.2010 11:53

Нет, но лучше спросить у тех кто знает и получить конкретный ответ и по возможности рекомендацию где лучше об этом написано. А гугл же просто выдаст совпадения но он не скажет где лучше об этом написано.

Sweet 04.11.2010 12:27

2de,
ну не скажи. Обрати внимание, что первым пунктом в поиске нормальная статья с wikipedia. Там все коротко и ясно объясняется: и примеры, и ссылки полезные. Так что стоило все же сначала поискать:)

KOLANICH 04.11.2010 19:04

короче
спасибо

как получить в обработчике события нормальный this, а не объект-адресат события?

Sweet 04.11.2010 19:47

Цитата:

Сообщение от KOLANICH
как получить в обработчике события нормальный this, а не объект-адресат события?

Во-первых, с каких это пор "объект-адресат события" не нормальный this.
А во-вторых, что такое "нормальный this"???

KOLANICH 04.11.2010 20:10

this в обычных условиях
объект, в методе которого находиимся

Sweet 04.11.2010 20:19

Не нужно гнать:) Событие и есть метод дом-объекта, так что this ведет себя нормально ("в обычных условиях" :) ).

KOLANICH 04.11.2010 20:24

function qwerty(){
this.abc=10;
.......
this.eventProcesser=function(evt){...}
canvas.addEventListener("click",this.eventProcesser,false);
}

var a=new qwerty();

как получить a из обработчика события?
window.a не предлагать

Sweet 04.11.2010 20:32

По-моему, это this-головного мозга... Как бы то ни было, у меня никогда таких проблем не возникало!

Sweet 04.11.2010 20:50

По-моему мнению, использование здесь конструктора - это явный бред.. Но это лирика. А по теме, не поверишь:
a.abc

KOLANICH 04.11.2010 21:04

а если у меня куча экземпляров а, все в разных переменных ?

а если я а как-то по другому назову?
нужно как-то почище

Sweet 04.11.2010 21:21

Ну раз так хочется через конструктор делать, придется сохранять this в локальную переменную. Тип того:
function qwerty(){
var that = this;
this.abc=10;
.......
this.eventProcesser=function(evt){
that.abc;
...}
canvas.addEventListener("click",this.eventProcesser,false);
}

var a=new qwerty();

KOLANICH 04.11.2010 21:41

спасибо
а то я пытался через свойство сделать, почему-то не получалось
function qwerty(){
....
this.eventProcesser=function(evt){
console.log(self);//window
}


this.eventProcesser.self=this;
	canvas.addEventListener("click",this.eventProcesser,false);
	
}


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