Мне нужно отобразить некоторые интерактивные (с помощью прослушивателей DOM и т. Д. И обработку событий) векторную графику на веб-сайте, над которым я работаю. Существует рекомендация W3C для SVG, хотя этот формат по-прежнему не распознается службой поддержки Internet Explorer, которая является обязательной (для общедоступного веб-сайта). IE обрабатывает VML, хотя и есть даже библиотеки javascript, которые делают какой-то рисунок в виде холста в зависимости от браузера (SVG vs. VML) - excanvas, GFX of Dojo Toolkit и более. Это было бы неплохо и приемлемо, хотя ни один из них не мог отображать изображение SVG из данной разметки.Просмотр векторной графики в браузере
Так что вопрос на самом деле состоит из нескольких частей:
- Есть ли кросс-браузер библиотека Javascript, которые отображают векторную графику из данной разметки (не обязательно SVG) и предложение доступности прикрепить к событиям DOM?
- Если нет, то какая из самых кукольных технологий, встроенных в браузер, была бы наиболее подходящей для выполнения такой задачи? Я могу выбрать из Flex/Flash, Java-апплета. Silverlight не является вариантом из-за блокировки Windows.
[EDIT] Спасибо всем за ваши комментарии/предложения. Ниже приведены лишь некоторые мои случайные замечания/выводы по этому вопросу:
- Уровень интерактивности мне нужно, это способность обнаруживать события DOM на векторном изображении отображается - Mouseover, MouseOut, нажмите и т.д. - и способность реагировать на них, как изменение цвета фона, отображение диалогового окна и т. д.
- Идея придерживаться формата SVG довольно хорошо, поскольку она является родной для многих браузеров, кроме самой популярной - IE. После некоторых экспериментов с отображением динамического SVG я понял, что IE версия 7 наиболее проблематична. Слишком много хлопот из-за несовместимости браузера.
- Торт кажется отличной рамкой Javascript, хотя я не мог получить примеры, работающие над IE7.
- Java-апплеты. Мне понравилась эта идея, поскольку я мог использовать библиотеку Apache Batik, качественный визуализатор SVG. Тем не менее, Батик - очень большая библиотека, и я не могу позволить себе развертывать апплет, который весит несколько мегабайт.
- Я решил придерживаться опции Flex. Я нашел красивую векторную графическую библиотеку Degrafa. Он использует свой собственный формат разметки, однако распознает нотацию SVG-пути, поэтому в моем случае будет довольно легко преобразовать SVG с помощью XSLT или просто проанализировать их.
[EDIT 2] Появилось еще несколько комментариев. Я хотел бы уточнить, что под «Windows lock-in» я имею в виду ситуацию, когда Silverlight обычно запускается в Windows, точнее, IE. Я сомневаюсь, что это приемлемое решение (например, Flash или Java-апплет, например) в других системах. Да, я не сомневаюсь, что один способен запускать приложение Silverlight в любой системе, хотя я боюсь, что это будет слишком много усилий для обычного пользователя.
@Akira: У вас были проблемы с этими «SVG-рендерерами» на IE7? Я все время бросаю ошибки Javascript.
Насколько мне известно, Adobe должна прекратить поддержку своего плагина. – 2009-01-08 13:59:11