Я пытаюсь получить доступ к некоторым пользовательским данным, отправленным в документ SVG Visio 2007. Я использовал jquery.svg.js Кейта Вуда. К сожалению, даже с расширением svgdom я не могу получить форму, которую я ищу, чтобы оживить его.
Вот как выглядит SVG:
...
<g id="group4-6" transform="translate(30.7955,-30.7955)" v:mID="4" v:groupContext="group" v:layerMember="0;1">
<v:custProps>
<v:cp id="helloWorld" v:nameU="AgentName" v:lbl="AgentName" v:type="0" v:langID="3081" v:val="VT4(Bob)"/>
</v:custProps>
<v:userDefs>
<v:ud v:nameU="Show" v:val="VT0(1):5"/>
</v:userDefs>
<title>Sheet.4</title>
<g id="shape5-7" ...
Я пытаюсь получить доступ к группе shape5-7, перейдя к ней относительно пользовательского свойства, содержащего «Bob». я хочу анимировать фигуру с приложенным к ней Бобом. Я попробовал следующее, но ничего не получил обратно.
$("v:cp[v:val*=Bob]:parent:parent > g:first", desk)
.each(function(i, item) { Log('found something'); })
.animate({ svgFill: 'red' }, 2000)
.animate({ svgFill: 'white' }, 2000);
Я пробовал это с префиксами пространства имен XML и без них. И я знаю, что форму можно найти в SVG DOM, поскольку $("#shape5-7")
находит правильную форму и хорошо анимирует. Похоже, что как только я пытаюсь получить доступ к не-SVG-элементам в SVG DOM, у меня возникают сбои. Я спрашиваю слишком много о библиотеке jquery.svg.js здесь, или я просто что-то упустил?
Я использую модифицированную версию jquery с версией 1.4.2 jquery.svg.js, работающей в Google Chrome 2.0.172.43. Сейчас я нахожусь в стадии проверки концепции, поэтому, если вы можете показать мне, как выполнить ту же задачу с использованием библиотек Raphael или ProcessingJS (или любой другой), я буду готов переключиться. JQuery-ориентированные решения мои предпочтения, хотя.
Спасибо
Эндрю Мэтьюз