§6 アニメーション(1)2 プログラミング実習
 back next 

【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 プログラムを実行する。[アニメ]ボタンをクリックする。

結果 クリックするとアニメーションが停止する。もう一度クリックするとアニメーションが続行する。すなわち、クリックするたびに続行と停止を繰り返す。


 back next 
 §6 アニメーション(1)2 Copyright©2008 Hiroshi Masuda 

 

 

inserted by FC2 system