6、 动画效果
我们前面学习的内容是SMIL1.0规定的。在SMIL2.0中添加了不少的内容,其中动画就是其中一个。很多的国外的教程上把flash文件*.swf归为这一类。我们不能同意这样的分类方法。我们认为把这样已经做好的动画该归为视频一类。真正的动画(从SMIL2.0规范中可以看出来)是有SMIL规定的并有SMIL播放器解释产生的动画。
从实际情况来看,动画效果主要是针对图片产生的。所以,我们在这里用图片来做例子。其他的多媒体的制作方法是类似的。有兴趣的GG、JJ、DD和MM可以自己做做。
(1) 运动动画
为先睹为快,请在Realone player中运行下面的程序:
< smil xmlns="http://www.w3.org/2000/SMIL20/CR/Language">
< head>
< layout>
< root-layout width="800" height="600"/>
< region id="Images" left="0" width="800" height="600"/>
< /layout>
< /head>
< body>
< img region="Images" src="g03.jpg" dur="6s">
< animateMotion from="0 0" to="600 400" dur="4s"/>
< /img>
< /body>
< /smil>
解释:a、我们这里用到的是SMIL2.0规范中的规定的内容的。所以,在第一行里(xmlns="http://www.w3.org/2000/SMIL20/CR/Language")我们必须声明我们所用的规范。不然的话,播放器可能不能正确解码、播放。
b、 animateMotion标记声明的是我们所要的动画类型。注意:这里就是我们所说的骆驼写法,还记得吧!JJ
c、 from="0 0" to="600 400"属性及其属性值声明的是动画从坐标点(0,0)运动到坐标点(600,400)。这里我们也可以写成:< animateMotion from="0,0" to="600,400" dur="4s"/>
d、 dur="4s"属性及其属性值声明的是动画在4秒内完成。在我们这个例子中,图片的存在时间是6秒,那么动画完成后,将有2秒钟的时间静止不动。如果图片的存在时间小于动画存在时间,那么动画运动到半路上就的停止,这样的情况是该避免的。
(2) 缩放动画
下面我们看看另外的一种动画形式:缩放动画。先看效果!J
< smil xmlns="http://www.w3.org/2000/SMIL20/CR/Language">
< head>
< layout>
< root-layout width="800" height="600"/>
< region id="Images" left="0" width="800" height="600" fit="meet"/>
< /layout>
< /head>
< body>
< img region="Images" dur="10s" src="g03.jpg" width="400" height="320">
< animate attributeName="height" from="320" to="160" fill="freeze" dur="10s"/>
< /img>
< /body>
< /smil>
解释:animate attributeName="height" from="320" to="160"声明了动画的类型和参数。大家看了效果以后,在结合上面的参数的意义,各参数是什么意思我们也就不用多讲了。J