Может ли холст внутри холста быть легко очищен от основного холста? - PullRequest
0 голосов
/ 10 сентября 2011

В настоящее время я работаю над интерфейсом, где у меня есть основной холст размером 800x800.Вверху я создал кучу иконок.Когда пользователь наводит курсор на значки в верхней части, он совпадает с координатами x и y своей мыши, чтобы определить, находится ли он в данный момент над каким-либо значком.Если он есть, я хочу иметь эффект наведения, когда рядом с мышью появляется ярлык с названием значка.Когда он движется, ярлык следует за мышью.Если он оставляет значок или перемещается на другой, последний очищается и либо не отображается ярлык (если пользователь убрал все значки), либо рядом с мышью отображается значок рядом с последним (если он наводит курсор на другую иконку, ширина метки будет переменной длины в зависимости от ширины текста).

Процесс упорядочения и отображения этих значков происходит в отдельном объекте от остальной частирендеринг холста, поэтому я бы не хотел повторно визуализировать весь этот объект для отображения значков каждый раз, когда срабатывает событие mousemove, поэтому мне интересно, есть ли способ отрисовки контекста другого «временного» холста иможет ли это быть легко очищено.как мышь движется, так что на основном холсте не осталось следов?Может ли кто-нибудь указать мне на пример, подобный этому, или посоветовать мне, как мне поступить с выполнением такого рода задач?

1 Ответ

0 голосов
/ 11 сентября 2011

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

Есть достойная альтернатива, которую вы должны рассмотреть: у вас может быть два холста размером 800x800, наложенных друг на друга,Это может быть полезно для некоторых приложений (например, игр), где есть фон, передний план и середина, у которых есть разные движущиеся части (но фоновые части перемещаются редко, а передний план не всегда присутствует и т. Д.)

Таким же образом вы могли бы «наложить» свое приложение холста, при этом значки находились на одном холсте, а фон и другие части приложения были на другом холсте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...