Clutter 学习总结
作者: unailbobo @ CSDN
日期: 2008-11-06
本文是作者学习 Clutter 的一个总结,介绍了 Clutter 在应用程序中的角色、基本对象、动画相关的对象以及创建动画的步骤等。

简介

初识 Clutter,觉得它很像是 Macromedia Flash,ClutterTimeline 就像是 flash 里的时间控制,可以设定桢速 fps 和动画的时间长度; ClutterBehaviour 设定 actor 的行为。

ClutterGTK 一样,采用 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的步骤

  1. create a timeline object
  2. create an alpha with the given timeline
  3. create a behaviour object from alpha
  4. apply a behaviour to an actor
  5. start the timeline

SeeAlso

http://blog.csdn.net/unailbobo/archive/2008/09/16/2934865.aspx