以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML源码及示例(仅原创和转载) 』  (http://bbs.xml.org.cn/list.asp?boardid=32)
----  关于在SVG中如何实现gif动画的问题?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=13490)


--  作者:fly123
--  发布时间:1/12/2005 3:46:00 PM

--  关于在SVG中如何实现gif动画的问题?
由于svg不支持动画,我做了个替代方法如下
step 1:先把多帧gif分成单帧并透明化
<image id="gif0" width=... xlink:href="data:image/gif;base64,... />
<image id="gif1" width=... xlink:href="data:image/gif;base64,... />
<image id="gif2" width=...xlink:href="data:image/gif;base64,...  />
<image id="gif3" width=... xlink:href="data:image/gif;base64,... />
..
step 2: 合成
<defs>
<g id="animegif7" transform="translate(0,0) scale(1.0, 1.0)">
<g>
<use xlink:href="#gif0"/><animate attributeName="visibility" values="visible;hidden;hidden;hidden;hidden;hidden;" keyTimes="0.0;0.5;1.0;1.5;2.0;2.5;" dur="3.0s" repeatCount="indefinite"/>
</g>
<g>
<use xlink:href="#gif1"/><animate attributeName="visibility" values="hidden;visible;hidden;hidden;hidden;hidden;" keyTimes="0.0;0.5;1.0;1.5;2.0;2.5;" dur="3.0s" repeatCount="indefinite"/>
</g>
<g>
<use xlink:href="#gif2"/><animate attributeName="visibility" values="hidden;hidden;visible;hidden;hidden;hidden;" keyTimes="0.0;0.5;1.0;1.5;2.0;2.5;" dur="3.0s" repeatCount="indefinite"/>
</g>
<g>
<use xlink:href="#gif3"/><animate attributeName="visibility" values="hidden;hidden;hidden;visible;hidden;hidden;" keyTimes="0.0;0.5;1.0;1.5;2.0;2.5;" dur="3.0s" repeatCount="indefinite"/>
</g>
</g>
</defs>
step 3: 使用动画
<use xlink:href="#animegif7"/>

这样在svg中gif动画可以实现了,但是出现了一些问题
1。4帧以下图片则叠加在一起,无法实现动画
2。由于透明色问题,使得每间隔一个周期,出现第1帧和最后1帧出现叠加

我没弄明白其中道理,请各位多多帮忙,关于普通raster graphic gif动画在svg中有什么更好的办法实现?


--  作者:fly123
--  发布时间:1/12/2005 6:11:00 PM

--  我自己解决了
原来是多加了;号的缘故
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.006ms