Я использую HTML5-игру с использованием холста. Теперь я думаю о создании всех текстовых надписей, таких как всплывающие подсказки, речи, infowindows и т. Д., Используя HTML-элементы с абсолютной позицией над холстом. Поэтому я могу использовать множество эффектов и переходов CSS3.Mixing canvas и элементы CSS3
Но я не уверен в производительности. Эти наложения должны быть добавлены и удалены frecuently (что-то вроде MMORPG, так что будет много речевых пузырей и т. Д.).
Есть, вероятно, 2 вопросы, касающиеся производительности:
DOM обходом для добавления/удаления. Может быть, кеш может помочь?
HTML и CSS3.
Другой вариант - управлять этими элементами в самом холсте, вытягивая их каждый кадр. Но, возможно, у меня снова будет штраф за исполнение, из-за дополнительного кода, тайм-аутов и всего, что я должен добавить, для достижения подобных эффектов, как в CSS3. И в любом случае потребуется обход некоторой структуры данных.
Рекомендации: мнения, впечатления?
Заранее спасибо.
Время обхода DOM может быть уменьшено путем кэширования ссылок на ваши «важные» элементы; Для этой цели я часто сохраняю хэш someUniqueId => DOMElement. Идентификатор может быть сохранен как атрибут data- * на ваших элементах, чтобы помочь с этой схемой. Что касается смешивания CSS3 с Canvas, я сам задавался этой стратегией (+1).Преобразование (координаты холста -> координаты экрана) должно быть абстрагировано хорошо, иначе вы столкнетесь с беспорядком, пытаясь понять, где разместить ваши обычные элементы поверх холста. –