SVG中的动画技术(2)
下面再看一个沿指定路径运动的例子:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg width="500" height="300" viewBox="0 0 500 300" xmlns="http://www.w3.org/2000/svg"> <desc>沿路径运动的例子</desc> <defs> <!-- 下面定义渐变颜色 --> <linearGradient id="grad1" x1="0" y1="0" x2="0" y2="100%" gradientUnits="userSpace"> <stop offset="0%" style="stop-color: #88f;"/> <stop offset="100%" style="stop-color: #008;"/> </linearGradient> </defs> <rect x="1" y="1" width="498" height="298" fill="none" stroke="blue" stroke-width="2" />
<!-- 下面的代码画出一个路径 --> <path d="M100,250 C 100,50 400,50 400,250" fill="none" stroke="blue" stroke-width="8" />
<!-- 下面的这个圆将沿着定义的轨迹运动 --> <circle r="25" style="fill:url(#grad1)"> <!-- 定义动画的运动轨迹 --> <animateMotion dur="6s" repeatCount="indefinite" path="M100,250 C 100,50 400,50 400,250" rotate="auto" /> </circle> <text x="145" y="285" style="font-size:12pt">http://lucky.myrice.com</text> </svg>
上面的例子应用了animateMotion动画元素,其属性设定和前面类似。该例子的效果如图所示:
SVG DOM产生动画的方式是由脚本语言调用DOM对象的属性和方法实现的,在SVG中使用脚本语言和HTML中类似,首先是指定脚本的语言类型:有两种办法可以指定脚本的语言类型
1),在SVG元素里使用contentScriptType属性,可以指定整个文档里使用的缺省脚本语言类型。 语法如下: <svg contentScripttype="content-type"> content-type指定一种媒体类型,默认是"text/ecmascript" 2),在script元素里使用type属性来声明该段脚本所使用的语言类型。 语法如下: <script type="content-type"> content-type就是所使用的媒体类型。
SVG里的script元素和HTML里的完全一致。任何script元素里定义的函数都可以应用到整个文档里,也可以通过xlink:href属性,指定一个脚本文件的URL地址,比如:<script type="text/JavaScript" xlink:href="test.js"></script> 
|