/// 実習E9 コントロール(ピクチャボックス) | プログラミング実習 |
プロジェクト名 実習E9画像の切換え2
説明
8枚の画像をタイマーで切り換える。
デザイン
画像データ (32×32ピクセル)
moon01.gif moon02.gif
moon03.gif moon04.gif
moon05.gif moon06.gif
moon07.gif moon08.gifフォームのプロパティ
Font.Size = 9 Size = 260, 120
ピクチャボックス
Size = 50, 50
SizeMode = StretchImage
Image = moon01.gif 〜 moon08.gif (8枚)
タイマー(Timer1)のプロパティ(オブジェクトは、フォーム上に表示されない。)
Enabled = Treu、 Interval = 250 (0.25秒)
コード(プログラム) [終了ボタン]のメソッドは省略しています。
Public Class Form1
Dim moon(8) As Image '画像用の配列 moon(1)〜moon(8)
'(どのメソッドからも参照できる変数)
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Timer1.Tick
Static flag As Integer = 1
picGazou.Image = moon(flag) ←※1
flag = flag + @
If flag = 9 Then ←※2
flag = A
End If
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load '起動時に一度だけ処理される。
Dim n As Integer
For n = 1 To B '配列に8枚の画像を格納する。 ←※3
moon( C ) = My.Resources.ResourceManager.GetObject("moon0" & n.ToString)
Next
End Sub
End Class
キーワード
My.Resources.ResourceManager.GetObject("moon0" & n.ToString)
使用するリソースの名前(moon01など)を文字列で指定できる。
解説
※1 配列moon(1)〜moon(8)に画像が格納されているので、変数flagの値を1〜8まで順に変えながら、picGazou.Imageに代入している。
※2 直前のflag=flag+1でflagが1ずつ増えるので、flagが9になったとき、1に戻す。これで、flagは1〜8まで順に変わる。
※3 キーワードの説明にあるように名前で指定できるのでForの繰返しを利用している。Forが利用できるようにリソース名(ファイル名)は連番になるようにしている。
Forを利用しなければ次のような書き方となる。
moon(1) = My.Resources.moon01
moon(2) = My.Resources.moon02
………
moon(7) = My.Resources.moon07
moon(8) = My.Resources.moon08
画像は0.25秒ごとに変わるので、1秒間に4枚の画像が表示されることになる。アニメーションにみえるようにするため、最低、この程度のスピードが必要である。
テスト
お月さんの画像が切り替わる。
/// 実習E9 コントロール(ピクチャボックス) | Copyright©2014 Hiroshi Masuda |