Привет,GTK # и PixbufAnimation итерации
Я имею проблему с помощью Gdk.PixbufAnimationIter из PixbufAnimation. Код идет что-то вроде этого:
Gdk.PixbufAnimation animation = new Gdk.PixbufAnimation(System.IO.Path.Combine([filepath], [filename]));
Gdk.PixbufAnimationIter iter = animation.GetIter([Current Time as IntPtr]);
Вот что я прочитал о PixbufAnimation.Iter:
start_time
время начала указано как поплавок, как выход из функции Pythontime.time()
.start_time
отмечает начало анимации воспроизведение.
GTK # не имеет функции time.time()
, и я попытался следующие:
long StartTime = DateTime.Now.Millisecond;
IntPtr SysTime = new IntPtr (&StartTime);
Gdk.PixbufAnimationIter iter = animation.GetIter(SysTime);
Но это не похоже, чтобы получить в любое время последовательно. Цифры, генерируемые из этого, кажутся очень случайными и, вероятно, вытягиваются из неправильного адреса в памяти (только предположение, не цитируйте меня на этом).
Я также прочитал это из другой документации PixbufAnimation:
Как ярлык, если start_time является
NULL
, результатg_get_current_time()
будет использоваться автоматически.
Однако компилятор отказывается разрешать значение NULL
для IntPtr.
Я также прочитал, что «Текущее время» используется, только если вы пытаетесь объединиться с анимацией, например, сделать анимацию более быстрой или медленной.
Может ли кто-нибудь помочь мне?
Спасибо, и самое смешное в том, что я изначально использовал IntPtr.Zero, чтобы получить компиляцию моего кода, но я чувствовал, что из-за этого моя анимация не отображается правильно. Однако это не так. Посредством отладки я вижу, что анимация правильна правильно и захватывает правильные pixbufs и время задержки, однако pixbuf не может быть повторно нарисован в окне после инициализации. Кажется, что если вы не используете Gtk.Image или Gdk.Image, у вас действительно очень мало вариантов обработки анимаций, а тем более анимации, которые требуют добавления альфа-цвета. – MrFreeman