moblin clutter 中的时间线功能用于每隔给定的毫秒进行一次回调。尽管它发出信号的速度要快得多(每 1 毫秒左右)。为什么会这样?
ClutterTimeline * clutter_timeline_new(guint msecs);
您不应该使用时间轴来获取已过去 N 毫秒的通知(并执行代码)。ClutterTimeline 是一个绑定到 UI 重绘周期的对象。每次 Clutter 重绘帧时,时间线都会提前,让应用程序代码知道它必须更新其状态。
如果您只需要在间隔后调用您的代码,请g_timeout_add()
改用;此函数仅与主循环相关联,与重绘循环无关。使用超时时还有其他注意事项需要注意,因此您应该阅读文档:
http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#g-timeout-add
严格来说,如果您使用的是 Moblin,您可能使用的是非常旧的 Clutter 版本,因此也可能存在错误;并不是说我知道每毫秒调用一次 ClutterTimeline::new-frame 信号的错误,请注意。