一、概述
想在手机上开发丰富多采的动画效果吗?这本书将向你介绍各种能被Plazmic Media Engine1.0.3(针对java手机而开发的PME动画浏览器)支持的SVG元素.
这一章节分为以下部分:
2.如何创建?
什么是"well-formed"SVG?
每种语言都有一些无效或有效的规则,这就叫作有效性,这与文件类型相关。如果一个文件宣称能严格遵从DTD(文档类型定义标准,可以看做是标记语言的语法文件),那么这种文件就是有效的。为了使SVG能有一种非常好的形式,它必须遵从以下规则:
每个开始标签必须要有一个相匹配的结束标签,举个例子:当你写了一个标签<name>你必须要有一个与之相匹配的标签</name>。
标签不能重叠,XML语言是严格的分等级的,也就是说在你关闭子元素之前一定要关闭父元素,这就叫标签的完全嵌套。
XML文件只能有一个根元素!
元素的命名必须遵从XML命名习惯:
名字必须以字母或下划线"_"开头,不可以是数字或标点符号,在首字母之后,数字和"- ""."是允许的。
名字不能包含空格。
名字不能包含字符":",除非你以名字空间工作。
在任何场合命名不能以xml开头。
在字符"<"后面不能有空格,元素的名字必须紧跟在"<"后面,在">"前面可以有一个空格。
如何创建?
这一部分包括以下区域:
1.创建周期
创建原始图象文件
对原始图象文件增加动画效果
对原始图象文件增加声音效果
完成计算增加后的文件
生成最后的动画场景,准备配置
2.可视化元素
注意:所有的属性都是以像数点来描述的。Plazmic的产品只支持采用像数点来描述尺寸,厘米和英寸都是不支持的。
以下列出了各种重要的可视化元素信息:
图象(GIF)
支持透明或不透明的图片。复杂的alpha通道是是不支持的,因此半透明也是不支持的。
为了节省文件尺寸,无论什么时候都要尽可能的减少图片文件的使用。
为了节省文件尺寸,无论什么时候都要尽可能的减少颜色数,gif图象颜色数理想状态下最好在10到20之间,有些文本图象应该减少到2到5之间。
文本(text)
Plazmic Media Engine只支持一种字体尺寸,如果你需要其他字体尺寸,你必须创建一个图象文件来描绘所需的字体。
由于不同的手机上所支持的字体可能会有所差别,使用图片来代替文本字符可以保证在不同的机子上得到一致的输出效果,记注:使用图片会增加文件尺寸。
矢量
注意:在文件尺寸上,使用矢量图通常比使用图片要小,然而,假使一个多边形有非常多的顶点,那么也会导致文件尺寸的增大,因此,某些情况下,使用图片比使用矢量图更能减小文件尺寸。
Rectangle
需要定义x y坐标,宽和高。16进制rgb颜色值是允许使用的。
可以被填充或显示其轮廓。
Polygon
需要给所有的顶点定义x y坐标。16进制rgb颜色值是允许使用的。
可以被填充或显示其轮廓。
Polyline
需要给所有的顶点定义x y坐标。16进制rgb颜色值是允许使用的。
不能被填充。
3.组合
由于可视化元素可以被组合,因此可以把组合对象看作是一个简单对象来处理。
注意:定位一个组合(group)可使用:transform:translate(x,y)。
4.动画参数
Plazmic Media Engine支持以下动画元素及属性:
x 和 y - 描述可视化元素在场景中的位置,改变x y坐标值就能使可视化元素在场景中动起来。
矩形的宽和高 -描述了矩形的尺寸,改变矩形的宽和高就能使矩形产生形变。
基于矢量的可视化元素(矩形,填充多边形,多边形,和文本)的rgb颜色值 -改变其rgb颜色值就能使这些可视化元素产生颜色变化效果。
填充 -描述多边形是否被填充,改变多边形的填充属性就能使多边形循环地显示预期的颜色。
注意:对于组合,<animate transform> 元素可以改变x y坐标位置来使整个group运动起来。
5.动画效果
以下是一般的动画处理:
如果你有很多的图片或多边形(比如像角色动画),你可以周期的显示它们来达到动画的效果。
动画由时间属性来控制。(句个例子:比如什么时候开始一个动画,什么时候显示一幅新图片)。
你不能改变多边形的顶点位置来产生动画,整个多边形必须重画。句个例子:你只想改变一个多边形的2个顶点位置,那么你必须创建足够多的多边形,
然后周期地显示它们,来达到相同的动画效果。
以下是处理尺寸和旋转动画:
旋转 -改变一个对象的方向必须采用多个图片或多个多边形来处理。Plazmic Media Engine不直接支持旋转对象。因此,
使用的图片越多,旋转的效果就越圆滑。
尺寸 -改变一个对象的尺寸必须采用多个图片或多个多边形来处理。Plazmic Media Engine不直接支持改变对象尺寸。因此,
使用的图片越多,尺寸变化效果越圆滑。
6. 声音
在场景当中,只能播放MIDI形式的声音文件(.mid)。声音大多用在以下场合:
场景的开始
用户触发了热区(hotspot)
注意:通过设置loop属性为true,可以使声音无限制地重复播放。