|
|
|
|
Clutter 学习总结
作者:
unailbobo @ CSDN
日期:
2008-11-06
本文是作者学习 Clutter 的一个总结,介绍了 Clutter 在应用程序中的角色、基本对象、动画相关的对象以及创建动画的步骤等。
|
简介
初识 Clutter,觉得它很像是 Macromedia Flash,ClutterTimeline 就像是
flash 里的时间控制,可以设定桢速 fps 和动画的时间长度;
ClutterBehaviour 设定 actor 的行为。
Clutter 与 GTK 一样,采用 GObject 的面向对象模式,signal-callback 机制,将事件循环挂在 X Window 上。
基本的Objects
- ClutterActor:所有可见元素的基类,定了基本属性,事件和信号。
- ClutterStage:继承自 ClutterActor ,提供一个“舞台” 给 actor 。与
GdkWindow 相似,接受事件。单实例,用 clutter_init() 创建,以后用
clutter_stage_get_default() 得到这个全局唯一的 stage。
- Clutter 中有极少的 widget ,在 Tidy 中提供了一些 widget 。
Animation相关的Objects
- ClutterTimeline:用于描述动画的持续时间和设定 FPS(frames per sec);
- ClutterAlpha:用以计算alpha value (0~CLUTTER_ALPHA_MAX_ALPHA)。
timeline 在每一桢开始时发出一个“new frame”的信号,ClutterAlpha 根
据设定的 alpha 函数
(CLUTTER_ALPHA_SINE_INC/CLUTTER_ALPHA_RAMP_INC......) 计算出alpha
value,以此来决定 actor 的属性,如位置,scale等等;
- ClutterBehaviour:actor 的行为属性,如旋转,变换大小,设定运动路径
等等。如果需要特殊的行为,我们可以自己实现一个类,继承自
ClutterBehaviour 。"driven" by clutte alpha.
创建一个animation的步骤
- create a timeline object
- create an alpha with the given timeline
- create a behaviour object from alpha
- apply a behaviour to an actor
- start the timeline
SeeAlso
http://blog.csdn.net/unailbobo/archive/2008/09/16/2934865.aspx
|
|