Что я должен использовать вместо clutter_score_new?
Я следовал этому уроку по Clutter, и, как вы можете себе представить, он довольно устарел, так как мой GCC выдает всевозможные предупреждения об устаревании. Так как я не хочу, чтобы их осматривали (вещи осуждаются по какой-то причине), мне удалось обойти большинство вещей, либо следуя совету предупреждений, либо рассудительно изучив ссылку на Clutter.
Тем не менее, один из разделов (один о баллах) требует от меня использовать clutter_score_new
, Как в отношении предупреждений GCC, так и в качестве справочного материала это устарело, без каких-либо альтернатив или предложений. Посмотрев документацию, я немного растерялся - что мне делать?
2 ответа
ClutterScore
был плохой класс, который, к сожалению, не был удален вовремя до того, как 1.0 был выпущен.
Вы можете достичь того же эффекта, используя ClutterTimeline
и маркеры для подключения / запуска / остановки временных шкал в иерархическом порядке.
честно говоря, нет никакой реальной причины использовать ClutterTimeline
прямо в эти дни. Вы можете напрямую использовать неявный API-интерфейс анимации или явный API-интерфейс Transition.
Многие API устарели с тех пор. Я обновил код с помощью ClutterPropertyTransition. Например, для анимации прямоугольника прямоугольника вы можете использовать:
ClutterTransition *transition = clutter_property_transition_new("rotation-angle-z");
clutter_timeline_set_progress_mode(CLUTTER_TIMELINE(transition), CLUTTER_LINEAR);
clutter_timeline_set_duration(CLUTTER_TIMELINE(transition), msecs);
clutter_timeline_set_repeat_count(CLUTTER_TIMELINE(transition), -1);
clutter_transition_set_animatable(transition, CLUTTER_ANIMATABLE(rect1));
clutter_transition_set_from(transition, G_TYPE_FLOAT, 0.0);
clutter_transition_set_to(transition, G_TYPE_FLOAT, 360.0);
clutter_timeline_start(CLUTTER_TIMELINE(transition));
Не забудьте отпустить ссылку на "переход", когда закончите