词条 | clutter |
释义 | 概述clutter是英国的移动Linux开发和服务商Opened Hand公司用于GUI的软件库,是一个C API集合。Opened Hand公司已被Intel收购。概况的说,clutter之于OpenGL/GLX,就像GTK之于Xlib/X。 clutter的介绍clutter感觉有点像flash,通过ClutterTimeline 和ClutterBehaviour 控制对象的行为。clutter用C语言编写,采用与GTK类似的面向对象编程。clutter的核心概念是:stage(画布,舞台)和actor(演员)。莎士比亚说“全世界是一座舞台,所有的男人女人不过是演员”,这句话很好的表现了这点。画布相当于一个window,或者framebuffer,是actor的舞台。所有的clutter程序都需要创建一个stage,它是最顶层的对象,也是一个container(容器),让其他的actor在其上面表演。actor们本身都是2D对象,是平面的,不过clutter允许我们对这些actor在3D空间进行操作,比如绕着x,y,z轴旋转。 clutter除了可以让我们在3D空间操作2D的actor之外,最有特色的就是可以使用时间线,通过多条时间线的协同使用,我们可以很容易创造出“有生气”“诱惑力”的程序。当然,clutter也会处理传统的键盘、鼠标事件。 基本 clutter 程序设计与stage的基本概念#include<clutter/clutter.h> clutter_init() clutter_stage_get_default() clutter_actor_show() clutter_container_add() clutter_main() 开始一个clutter程序,使用clutter_init()函数初始化。使用clutter_stage_get_default()创建一个stage。也可以使用GtkClutterEmbed widget在一个GTK+窗口中使用clutter。 ClutterStage从ClutterActor对象派生,所以很多ClutteActor的属性都可以用在stage上,例如调用clutter_actor_show()函数显示stage。 ClutterStage也操作ClutterContainer,允许使用clutter_container_add()函数添加子actors。调用clutter_main()函数开始一个main loop,让stage“活”起来。 stage每个clutter应用程序都至少包括一个ClutterStage。这个stage容纳Actors(如rectangles,images,text等)。 stage widgetGtkClutterEmbed widget允许把ClutterStage放到一个GTK+窗口中。使用gtk_clutter_embed_new()函数创建一个实例,再用gtk_clutter_embed_get_stage()函数从GtkClutterEmbed对象创建一个ClutterStage实例。 使用GtkClutterEmbed widget,需要用gtk_clutter_init代替clutter_init和gtk_init初始化clutter和GTK+。使用gtk_main()代替clutter_main()创建main loop。 Actorclutter中的基本actor有: (1) ClutterStage --- stage (2) ClutterRectangle --- 矩形 (3) ClutterText --- 显示和编辑文本 (4) ClutterTexture --- 图片 每个actor需要用clutter_container_add()函数添加到stage中,并且用clutter_actor_set_position()函数设置位置(x,y坐标),z 轴使用clutter_actor_set_depth()函数设置。使用clutter_actor_set_size()函数设置宽度和长度(width and height)。 actor 的位置默认在 parent container(比如stage)的 top-left(0,0),可以用clutter_actor_set_anchor_point()函数改变。 默认情况下,actor 是隐藏的,需要调用clutter_actor_show()函数显示。可以调用clutter_actor_hide()函数隐藏对象。actor 可以使用scaling(缩放)、rotation(旋转)、partly transparent(透明)变形。 Containers(容器)ClutterContainer ClutterStage ClutterGroup 使用ClutterGroup可以同时操作几个actor。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。