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 に答える