Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Canvas события (https://javascript.ru/forum/misc/19266-canvas-sobytiya.html)

nyols 30.07.2011 23:20

Цитата:

Сообщение от dmitriymar
ие9 полная поддержка

Это знаю, но все равно еще не все им пользуются)

Цитата:

Сообщение от DreamTheater
ExtCanvas - мой маленький "фреймворк"

Давно видел ту тему, а сегодня утром не помнил про нее и никак не смог найти нормальный и понятный фреймворк)
Нашел бы я ее утром, наверное бы не заморачивался насчет этого всего))

У меня у самого сейчс скоро фреймворк получится, с утра подсел на изучение, называется "решил сделать просто пару функций для удобства", сейчас чую такая махина получится :D Хотя не факт что она везде будет работать, но ниче, зато практика будет, да и я всегда мечтал сделать какой то фреймворк))))

DreamTheater 30.07.2011 23:26

Перефразируя известную пословицу: "Каждый программист должен в жизни сделать три вещи: посадить дерево, вырастить сына, написать свой фреймворк" :D

nyols 31.07.2011 10:55

dmitriymar,
А что можно придумать что бы определять клик по кривому элементу ? Ареа же позволяет рисовать только круги, квадраты и полигоны.

dmitriymar 31.07.2011 11:22

Цитата:

Сообщение от nyols
Ареа же позволяет рисовать только круги, квадраты и полигоны.

а полигон это не многоугольник?))
http://htmlbook.ru/html/area/shape
она позволяет рисовать любую фигуру по заданным точкам(любое количество точек)-хоть круг ,овал из них нарисуй

nyols 31.07.2011 12:49

Да, но при рисование на канвасе я же не знаю все эти точки ?
К примеру вот рисует пол круга:
ctx.arc(20, 20, 10, 10, Math.PI*2, true);

При наличие этих данных мы же не сможем нарисовать арию ?

dmitriymar 31.07.2011 12:58

посмотри функции какие я тебе дал ранее для канвы. переноси точки с канвы в эрию -координаты и там и там одинаковые будут

nyols 31.07.2011 13:16

Да я прочитал про них (getImageData, putImageData). Но они как я понила позволяют узнать цвет определенной области ? Как мне с помощью них узнать точки границ элемента ?

dmitriymar 31.07.2011 14:22

ты считываешь линию (несколько линий)из канвы -при этом считывании ты явно знаешь у-поскольку считываешь с помощью его линию.
узнать х-вся линия это ширина канвы *4(поскольку для каждой точки 4 байта) находишь точку по цвету -узнаёшь и х соответственно. итого у и х у тебя есть
а начальные х и у для начала поиска ты знаешь либо когда строишь либо координаты мыши для действий каких планируешь. проходишь по окружению находишь все точки-копируешь их в эрию

я бы поступил не так-создал бы двумерный массив(условно) по размерам канвы
при построении фигуры проходил бы по канве находил бы точки ставил бы на их месте флаги в массиве(допустим еденицы-можно индикатор цвета-решится проблема с наложением если обыграть наложения трёхмерным массивом)-если на их месте нет флага -то это точки новой фигуры
строил бы по ним эрию
соответственно решена проблема с закраской. контур в эрию прекинуть.и затем закраску в массиве тоже отметить

nyols 01.08.2011 00:35

Почитал эту статью и взглянул на код фреймворка от DreamTheater (вроде такой же подход отлова событий используется как и в статье).
И никак не могу понять как там отлавливаются события для элемента (вроде рисуется как обычно, не могу догнать как запоминается элемент :) ), и каковы плюсы такого подхода в отличии от использования эрии ?

float 01.08.2011 01:04

я так полагаю этим:
context.isPointInPath(event.mouseX, event.mouseY)

ЗЫ и откуда эта мода пошла строка кода - 4 строки комментов....


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