Показать сообщение отдельно
  #1 (permalink)  
Старый 03.12.2014, 13:53
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

Несколько Canvas + Fluent interface
Вводные:
Была задача, грубо говоря, сделать рисовалку графов в канвасе.

Реализовал её в одном canvas. Теперь встала задача более сложная - на странице может быть много этих рисовалок , ну там 3-4-5, не важно, и нужно сделать fluent interface, да пока хотя бы сделать скрипт внешним (сейчас он html'ке).

Вообщем подскажите, как лучше это сделать с алгоритмической точки зрения, потому что на текущий момент я даже не знаю с какого конца взяться(

Имеем:
массивы объектов (дуг, вершин)
функции отрисовки
функции ивентов (клики и движение мыши)

Суть проблемы:
Для меня, самое сложное сейчас это наверное разграничить ивенты, чтобы на каждый canvas свой обработчик вешался. Конкретизирую:
сейчас у меня просто 3 ивента на элемент типа canvas, найденный по id внутри html. Но я не понимаю как заставить работать все, когда будет несколько canvas, а скрипт будет во внешнем файле.

Мои идеи:
Чутье мне подсказывает, что есть два варианта решения этой проблемы.
1 - это глобальный ивент на клики, внутри которого уже идет проверка - а на каком конкретно canvas произошел таки клик.
2 - это навешать на каждый canvas свой собственный ивент клика.
Реализацию первого варианта я еще смутно представляю, второй для меня дикость.

Финальный вопрос:
Какой из вариантов будет верным (правильным) или может есть еще способы, о которых я не догадываюсь?
Ответить с цитированием