使用JavaScript控制SVG的SMIL

时间:2012-05-22 14:26:53

标签: javascript html5 animation svg smil

假设我有一只昆虫的SVG。除非以这种方式不可能,否则我希望将其插入为<img /><object />标记。

现在, insect.svg 有两个动画:一个用于行走,另一个用于飞行。

我想单独启动/停止这些动画,并从HTML的JavaScript(或以其他方式从HTML JavaScript中调用嵌入式SVG JS函数“walk”或“fly”)开始/停止这些动画。

所以,最后,如果在游戏过程中我希望我的昆虫飞行,我可以告诉它用JS这样做,并告诉它停止它不应该再飞。与步行相同。

有没有办法做到这一点?过去一小时我一直在谷歌搜索,并没有真正的发现。 如果这是一个问题,我不关心IE支持。

感谢您的时间!

1 个答案:

答案 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>元素,因为它不允许编写脚本。