私はPixbufAnimationのGdk.PixbufAnimationIterを使用して問題を抱えています。コードは次のようなものだ:
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()
関数からの出力としてfloatとして を指定しています。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()
の 結果が自動的に使用されます。
ただし、コンパイラはIntPtrの値をNULL
にすることを拒否します。
「現在の時間」は、アニメーションの表示を高速または低速にするなど、アニメーションを混乱させる場合にのみ使用されることも読んでいます。
誰でも私を助けることができますか?
ありがとう、面白いのは、元々IntPtr.Zeroを使用してコードをコンパイルしていたことですが、アニメーションが正しく表示されていないと感じました。しかし、そうではありません。デバッグを行うと、アニメーションが正しく反復され、正しいpixbufsと遅延時間を取得することがわかりますが、pixbufは初期化後にウィンドウに再描画できません。 Gtk.ImageやGdk.Imageを使用しないと、アニメーションを処理するオプションがほとんどなく、アルファカラーを追加する必要があるアニメーションがずっと少なくなっているようです。 – MrFreeman