§6 アニメーション(1)2 | プログラミング実習 |
【3】 2つの画像データの切り替え(1)
ボタンのクリックで画像を切り替える。
操作 8 ボタンを1つ追加し、プロパティを次のように設定する。
(Name) AnimButton Location 10, 10 Text アニメ
操作 9 [アニメ](AnimButton)ボタンのクリックイベントに対応するメソッドを次のように作成する。
Private Sub AnimButton_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles AnimButton.Click
Static number As Integer = 1 '※ 変数numberの宣言
If number = 0 Then
'変数numberが0のときは
MainPict.Image = My.Resources.right1 'right1を表示し
ElseIf number = 1 Then
'変数numberが1のときは
MainPict.Image = My.Resources.right2 'right2を表示する
End If
number = number + 1 '変数numberに1を加算
If number = 2 Then '変数numberが2のときは
number = 0
'変数numberを0にする
End If
End Sub
リソースに登録した画像データは、「My.Resources.名前」で利用することができる。
リソースに登録するデータは、画像データに限定はしない。また、リソースはプログラムの中で共通して利用することができる。
通常、変数宣言には"Dim"を使い「Dim number As Integer」と書くが、ここでは"Dim"の代わりに"static"を使い「Static number As Integer」と書いている。
○ 変数宣言 Dim と Static
Dim で宣言 Static で宣言 変数の有効期間 メソッドが実行中のときだけ プログラムが終了するまで
"Dim"で宣言するとメソッドが実行されるたびに変数が用意(初期化)され、メソッドの終了とともに変数は消える。しかし、"Static"で宣言すると最初にメソッドが実行されたときに変数が用意され、プログラムが終了するまで消えない。
整数(Integer)の変数は0で初期化されるが、「Static number As Integer = 1」として、1で初期化している。
操作 10 プログラムを実行する。[アニメ]ボタンをクリックする。
クリックするたびに画像が切り替わる。
【4】 2つの画像データの切り替え(2)
設定した時間で画像が切り替わるようにする。
操作 11 タイマー(Timer1)を配置する。
ツールボックスのコンポーネントから[Timer](図@)をダブルクリックする。オブジェクトはフォームと別の場所(図A)に配置される。
Enabled True Interval 300 (300ミリ秒=0.3秒)
Enabledプロパティはイベントの発生を有効(True)または無効(False)にするためのものである。
Intervalプロパティはイベントが発生する間隔で、単位はミリ秒である。
操作 12 タイマー(Timer1)のイベントに対応するメソッドを次のように作成する。AnimButton_Clickメソッドのプログラムをコピーすればよい。
デザインウィンドウで、[Timer](図A)をダブルクリックすると、Timer1_Tickメソッドの定義部が表示される。
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Timer1.Tick
Static number As Integer = 1
If number = 0 Then
MainPict.Image = My.Resources.right1
ElseIf number = 1 Then
MainPict.Image = My.Resources.right2
End If
number = number + 1
If number = 2 Then
number = 0
End If
End Sub
操作 13 AnimButton_Clickメソッドを次のように変更する。
Private Sub AnimButton_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles AnimButton.Click
If Timer1.Enabled = True Then
'EnabledプロパティがTrueのとき
Timer1.Enabled = False
'EnabledプロパティをFalseにし
ElseIf Timer1.Enabled = False Then 'EnabledプロパティがFalseのとき
Timer1.Enabled = True 'EnabledプロパティがTrueにする
End If
End Sub
[アニメ]ボタンで、アニメーションの続行と停止を切り替える。
操作 14 プログラムを実行する。[アニメ]ボタンをクリックする。
クリックするとアニメーションが停止する。もう一度クリックするとアニメーションが続行する。すなわち、クリックするたびに続行と停止を繰り返す。
§6 アニメーション(1)2 | Copyright©2008 Hiroshi Masuda |