1

我正在学习如何为 svg 制作动画。

我可以用 calcMode="spline" 在两个形状之间制作动画,我可以在没有 calcMode="spline" 的情况下在三个形状之间制作动画,但是我不能用 calcMode="spline" 在三个形状之间制作动画。

这是我的例子:

<animate
        attributeName="d"   
        attributeType="XML"     
        begin="0"               
        from="M662.1,170.5c-0.2,0-0.3-0.1-0.4-0.3l-3.5-7.9c-0.1-0.2,1-0.1,1-0.1l3.2,7.7c0.1,0.2,0,0.5-0.2,0.6
        C662.2,170.5,662.1,170.5,662.1,170.5z"

        to="M704,146.5c-0.6,0-1.1-0.3-1.4-0.9l-12.4-28.1c-0.3-0.7,3.6-0.5,3.6-0.5l11.6,27.4c0.3,0.8,0,1.6-0.8,2
        C704.4,146.4,704.2,146.5,704,146.5z"
        dur="2s"
        values="
        M662.1,170.5c-0.2,0-0.3-0.1-0.4-0.3l-3.5-7.9c-0.1-0.2,1-0.1,1-0.1l3.2,7.7c0.1,0.2,0,0.5-0.2,0.6
        C662.2,170.5,662.1,170.5,662.1,170.5z;
        M704,146.5c-0.6,0-1.1-0.3-1.4-0.9l-16.4-25.1c-0.3-0.7,3.6-0.5,3.6-0.5l15.6,24.4
        c0.3,0.8,0,1.6-0.8,2C704.4,146.4,704.2,146.5,704,146.5z;
        M704,146.5c-0.6,0-1.1-0.3-1.4-0.9l-12.4-28.1c-0.3-0.7,3.6-0.5,3.6-0.5l11.6,27.4c0.3,0.8,0,1.6-0.8,2
        C704.4,146.4,704.2,146.5,704,146.5z"

        calcMode      = "spline"
        keySplines    = "0 0.75 0.25 1"
        keyTimes      = "0;1;2"
        />

如果我删除调整 keyTimes="0;1" 的值,它会起作用。如果我删除 calcMode、keySplines 和 keyTimes,它就可以工作。但它不能一起工作。我在某个地方犯了错误,还是我们不能同时使用两者?

感谢您的帮助!

4

1 回答 1

0

来自 SVG 规范:

'<a href="http://www.w3.org/TR/SVG/animate.html#KeySplinesAttribute" rel="nofollow">keySplines' 值是控制点。因此,控制点的集合必须比“keyTimes”少一组。

您有一个 keySplines 值,因此您需要 2 个 keyTimes 值。或者,您需要有 2 个 keySplines 值才能支持 3 个 keyTimes 值。

于 2015-03-31T17:26:28.127 回答