假设我有一只昆虫的SVG。除非以这种方式不可能,否则我希望将其插入为<img />
或<object />
标记。
现在, insect.svg 有两个动画:一个用于行走,另一个用于飞行。
我想单独启动/停止这些动画,并从HTML的JavaScript(或以其他方式从HTML JavaScript中调用嵌入式SVG JS函数“walk”或“fly”)开始/停止这些动画。
所以,最后,如果在游戏过程中我希望我的昆虫飞行,我可以告诉它用JS这样做,并告诉它停止它不应该再飞。与步行相同。
有没有办法做到这一点?过去一小时我一直在谷歌搜索,并没有真正的发现。 如果这是一个问题,我不关心IE支持。
感谢您的时间!
答案 0 :(得分:1)
您可以尝试使用SMIL动画超链接。您在URL上的#后面放置了要启动的动画的ID。例如,请参阅http://www.w3.org/Graphics/SVG/Test/20061213/htmlObjectHarness/full-animate-elem-21-t.html - 单击鼠标并启动动画时,URL会更改。如果您使用Firefox,则需要每晚一次,因为SMIL超链接不在Firefox 12中。
否则,如果你想用javascript开始动画,它就会像这样......
var svgDocument = document.getElementById("objectId>").getSVGDocument();
svgDocument.getElementById('<animationElementId>').beginElement();
但这不适用于<img>
元素,因为它不允许编写脚本。