Kirjoittaja: ErroR++
Kirjoitettu: 30.04.2012 – 30.01.2015
Tagit: grafiikka, koodi näytille, vinkki
GIF-animaatiot ovat hauskoja, jos niiden kehykset vaihtuvat. VB.NET ei tätä itsestään tee, joten se on tehtävä itse. Tämä koodivinkki kertoo, kuinka vaihdetaan kuvan framet (kehykset) järjestyksessä.
Formin asetuksissa olisi hyvä olla päällä DoubleBuffered, jotta kuva ei välkkyisi. Laita formille Timer tmrUpdate, Interval 50.
Imports System.Drawing
Imports System.Drawing.Imaging
Public Class MainForm
'esitellään muuttuja, joka kertoo nykyisen kehyksen
Dim currentFrame As Integer
Private Sub MainForm_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'ladataan kuva
Me.BackgroundImage = Image.FromFile("C:\animaatio.gif")
'käynnistetään ajastin
tmrUpdate.Start()
End Sub
Private Sub tmrUpdate_Tick(sender As System.Object, e As System.EventArgs) Handles tmrUpdate.Tick
'kasvatetaan laskuria
currentFrame += 1
'jos meinaa mennä rajojen yli, aloitetaan alusta
If currentFrame > Me.BackgroundImage.GetFrameCount(FrameDimension.Time) - 1 Then currentFrame = 0
'vaihdetaan kehys
Me.BackgroundImage.SelectActiveFrame(FrameDimension.Time, currentFrame)
'päivitetään
Me.Refresh()
End Sub
End Class