用JavaScript控制SVG的SMIL

7
假设我有一张昆虫的 SVG 图像。除非不可能,否则我想将其插入为 <img /><object /> 标签。现在,这个 insect.svg 有两个动画:一个用于行走,另一个用于飞行。 我想从 HTML 的 JavaScript 中启动/停止这些动画。或者以其他方式调用嵌入的 SVG JS 函数“walk”或“fly”。因此,在玩游戏时,如果我想让我的昆虫飞行,我只需通过 JS 告诉它这样做,并告诉它在不需要再飞行时停止飞行。同样适用于行走。有没有办法做到这一点?我已经谷歌了一个小时,但还没有找到真正的发现。如果这是一个问题,我不关心 IE 支持。感谢您的时间!
1个回答

4
你可以尝试使用SMIL动画超链接。在URL后面加上你想要启动的动画的id。例如,参见http://www.w3.org/Graphics/SVG/Test/20061213/htmlObjectHarness/full-animate-elem-21-t.html - 当鼠标被点击时,URL会改变并开始动画。

否则,如果你想使用JavaScript启动动画,代码应该像这样...

var svgDocument = document.getElementById("objectId>").getSVGDocument();
svgDocument.getElementById('<animationElementId>').beginElement();

但是这种方法对于<img>元素并不适用,因为它不允许脚本。

getSVGDocument,太棒了。所以,明确一下,与SVG DOM交互的唯一方式是将SVG代码嵌入HTML中,对吗? - ArtPulse
完全不是,上面的答案假设您已经按照您的要求使用了<object>。 - Robert Longson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接