Интерактивность
Введение в интерактивность SVG - графики
SVG - графика поддерживает широкий диапазон средств взаимодействия с пользователем. Их можно условно разделить на три категории:
- Гиперссылки для связывания SVG - документов между собой, а также между HTML - страницами и другими файлами.
- События, которые также можно разделить на события мыши, клавиатуры и события документа в целом.
- Комплексные приложения, содержащие скрипты с использованием JavaScript и DOM.
В качестве примера из последней категории, можно привести SVG - тетрис1На диске, прилагаемом к книге, вы найдете также SVG - версии сапера и пасьянса (Lecture12\Games) (рис. 12.1):
Рис. 12.1. SVG - тетрис для браузера Mozilla Firefox. Пример svgtetris.svg (http://www.mozilla.org/projects/svg/)
Базовые средства интерактивности (масштабирование, перетаскивание) поддерживает сам плейер Adobe SVG - Viewer. Однако и эти свойства могут быть включены в программную часть SVG - документа.
Гиперссылки
Одна из наиболее распространенных форм интерактивности - это переходы по гиперссылкам. Так же, как и в HTML, для создания ссылки используется элемент (тег) <a>. В SVG - графике используется атрибут xlink:href для указания адреса ссылки. Все объекты, содержащиеся внутри элемента <a>, представляют собой содержимое ссылки:
<a xlink:href="http://www.intuit.ru"> <rect x="15" y="60" width="100" height="30" fill="#eeff99" stroke="#ff9900" stroke-width="5" rx="10" ry="10"/> <text x="40" y="80" font-size="16" fill="#990000"> INTUIT</text> </a>
В этом примере областью гиперссылки будет прямоугольник вместе с текстом. В табл. 12.1 приводятся примеры использования гиперссылок.
№ | Код | Описание |
---|---|---|
12.1.1 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="315" height="200" xmlns="http://www.w3.org/2000/svg" version="1.1"> <title> Лекция 12. Интерактивность</title> <desc> Пример linking1.svg </desc> <!-- Первая ссылка --> <a xlink:href="http://www.intuit.ru"> <text x="15" y="25" font-family="Times New Roman" font-size="22" fill="black"> ИНТЕРНЕТ УНИВЕРСИТЕТ</text> <text x="15" y="40" font-family="Times New Roman" font-size="14" fill="#ff9900"> ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ</text> </a> <!-- Вторая ссылка --> <a xlink:href="http://www.intuit.ru"> <rect x="15" y="60" width="100" height="30" fill="#eeff99" stroke="#ff9900" stroke-width="5" rx="10" ry="10"/> <text x="40" y="80" font-size="16" fill="#990000"> INTUIT</text> </a> <!-- Третья ссылка --> <a xlink:href="http://www.intuit.ru"> <image x="15" y="110" width="285" height="52" xlink:href="INTUIT_logo.gif"/> </a> </svg>Листинг 12.1.1. Пример linking1.svg |
Все три ссылки ведут на веб-сайт www.intuit.ru. Первая ссылка представляет собой два элемента текст, причем вся площадь, занимаемая текстом, представляет собой область ссылки. Во втором случае гиперссылка содержит прямоугольник и текст. Третья ссылка использует локальный рисунок "INTUIT_logo.gif" в качестве изображения. |
Вид в браузере | ||
№ | Код | Описание |
12.1.2 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="160" height="380" xmlns="http://www.w3.org/2000/svg" version="1.1"> <title> Лекция 12. Интерактивность</title> <desc> Пример linking2.svg </desc> <!-- Первая ссылка --> <a xlink:href="sea1.jpg"> <image x="20" y="20" width="116" height="78" xlink:href="small_sea1.jpg"/> <text x="20" y="110" font-family="Times New Roman" font-size="12" fill="indigo"> Восточное побережье</text> </a> <!-- Вторая ссылка --> <a xlink:href="sea2.jpg"> <image x="20" y="140" width="116" height="78" xlink:href="small_sea2.jpg"/> <text x="20" y="230" font-family="Times New Roman" font-size="12" fill="indigo"> Западное побережье</text> </a> <!-- Третья ссылка --> <a xlink:href="sea3.jpg" target="new"> <image x="20" y="260" width="116" height="78" xlink:href="small_sea3.jpg"/> <text x="20" y="350" font-family="Times New Roman" font-size="12" fill="indigo"> Южное побережье</text> </a> </svg>Листинг 12.1.2. Пример linking2.svg |
SVG - документ содержит эскизы фотографий, по нажатию на которые открываются большие изображения. Например, первая ссылка содержит изображение "small_sea1.jpg", по нажатию на которое открывается большое изображение "sea1.jpg ". Первые две ссылки открываются в родительском окне, последняя - в новом (атрибут target="new" ). |
Вид в браузере | ||
№ | Код | Вид в браузере |
12.1.3 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="200" height="100" xmlns="http://www.w3.org/2000/svg" version="1.1"> <title> Лекция 12. Интерактивность</title> <desc> Пример linking3.svg </desc> <rect x="5" y="5" width="190" height="90" fill="none" stroke="blue" stroke-width="2"></rect> <!-- Первая ссылка --> <a xlink:href="C:\WINDOWS\explorer.exe"> <image x="15" y="15" width="32" height="32" xlink:href="explorerIcon.png"/> <text x="15" y="60" font-family="Times New Roman" font-size="10" fill="indigo"> Проводник</text> </a> <!-- Вторая ссылка --> <a xlink:href="C:\WINDOWS\regedit.exe"> <image x="75" y="15" width="32" height="32" xlink:href="regeditIcon.png"/> <text x="75" y="60" font-family="Times New Roman" font-size="10" fill="indigo"> Редактор</text> <text x="75" y="70" font-family="Times New Roman" font-size="10" fill="indigo"> реестра</text> </a> <!-- Третья ссылка --> <a xlink:href="C:\WINDOWS\system32\dxdiag.exe"> <image x="125" y="15" width="32" height="32" xlink:href="dxdiagIcon.png"/> <text x="125" y="60" font-family="Times New Roman" font-size="10" fill="indigo"> Средство</text> <text x="125" y="70" font-family="Times New Roman" font-size="10" fill="indigo"> диагностики</text> </a> </svg>Листинг 12.1.3. Пример linking3.svg |
|
Описание | ||
Запуск проводника, редактора реестра и средства диагностики Direct X на локальном компьютере. | ||
№ | Код | Вид в браузере |
12.1.4 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="200" height="100" xmlns="http://www.w3.org/2000/svg" version="1.1"> <title> Лекция 12. Интерактивность</title> <desc> Пример linking4.svg </desc> <rect x="5" y="5" width="190" height="90" fill="none" stroke="blue" stroke-width="2"></rect> <!-- Первая ссылка --> <a xlink:href="C:\WINDOWS\explorer.exe"> <image x="15" y="15" width="32" height="32" xlink:href="explorerIcon.png"> <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0, 31, 31" to="360, 31, 31" begin="0" dur="1s" repeatCount="indefinite" /> </image> <text x="15" y="60" font-family="Times New Roman" font-size="10" fill="indigo"> Проводник</text> </a> <!-- Вторая ссылка --> <a xlink:href="C:\WINDOWS\regedit.exe"> <image x="75" y="15" width="32" height="32" xlink:href="regeditIcon.png"> <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0, 91, 31" to="360, 91, 31" begin="0" dur="1s" repeatCount="indefinite" /> </image> <text x="75" y="60" font-family="Times New Roman" font-size="10" fill="indigo"> Редактор</text> <text x="75" y="70" font-family="Times New Roman" font-size="10" fill="indigo"> реестра</text> </a> <!-- Третья ссылка --> <a xlink:href="C:\WINDOWS\system32\dxdiag.exe"> <image x="125" y="15" width="32" height="32" xlink:href="dxdiagIcon.png"> <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0, 141, 31" to="360, 141, 31" begin="0" dur="1s" repeatCount="indefinite" /> </image> <text x="125" y="60" font-family="Times New Roman" font-size="10" fill="indigo"> Средство</text> <text x="125" y="70" font-family="Times New Roman" font-size="10" fill="indigo"> диагностики</text> </a> </svg>Листинг 12.1.4. Пример linking4.svg |
|
Описание | ||
Гиперссылки представляют собой анимированные изображения. |