0

moblin clutter 中的时间线功能用于每隔给定的毫秒进行一次回调。尽管它发出信号的速度要快得多(每 1 毫秒左右)。为什么会这样?

ClutterTimeline * clutter_timeline_new(guint msecs);
4

1 回答 1

1

您不应该使用时间轴来获取已过去 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 信号的错误,请注意。

于 2013-02-14T08:20:26.847 回答