Java
Java
Java2 SE 5.0 API
Java2 SE 1.4 API
Java2 EE API
Struts 1.0.2
MSDN2 Library
MySQL 5.1
MySQL 4.1
HTMLリファレンス
CSSリファレンス
JavaScript
基本カラーチャート
カレンダー
 最新PG・講座情報
 最新ニュース
 電子辞書・辞典
ご意見・ご要望はこちらまで

課題

Java

簡単なアニメーション(+メディアトラッカー)


1.プログラムの仕様変更

 今回は前に作成した「人が歩く姿の簡単なアニメーション」の仕様変更版です。
 まずは前回の課題を忘れた方はこちらを参照して下さい。

 人が歩く姿のイメージ画像は15枚ありましたが、遅いコンピュータで実行した場合では、全ての画像がロードされないと、最初の描画部分で駒抜け状態になる可能性があります。 このような状態を防ぐためには、使用する画像のロード状況を監視し、全ての画像がロードされたら描画を行うといった制御をしなければなりません。

 描画部分の drawImage()メソッドでは、引数でイメージオブザーバ(ImageObserver)を指定し、ロードを監視させることが出来ますが、 今回は別の方法のメディアトラッカー(MediaTracker)を利用してみます。

 変更点は次のようになります。

  • 人が歩く姿のイメージ画像を全てメディアトラッカー(MediaTracker)に監視させる。
  • 描画するときに全てのイメージ画像がロードされていない場合は、「ただ今ロード中です!」と表示する。

2.メディアトラッカーの説明

 通常の画像表示は getImage()メソッドでイメージのロード指示を行い、drawImage()メソッドで実際の画像の描画を行います。 ロードを指示するだけですから、ロードの完了とは無関係にすぐに次の文へ行ってしまいます。 そこで大きな画像ではロード未完了のまま drawImage()メソッドを実行し、ロードされるまで再描画(paint()メソッド)を繰り返すことになります。 インターネットのブラウザでの画像表示で、ロードが間に合わないために「X」印を表示後に、後から実表示されてくるのに似ています。

 メディアトラッカーは画像毎に監視を依頼されたら、その画像のロード完了を通知してくれたり、ロード完了するまで待ってくれたりしてくれます。 「ただ今ロード中です!」と表示するには、監視を依頼したメディアトラッカーに、ロード完了したか通知してもらえば表示することが出来ます。
 利用方法は次のような流れになります。

  1. メディアトラッカー(MediaTracker)の生成(mt)
  2. イメージ画像のロード指示(getImage)
  3. メディアトラッカーにイメージ画像の登録(mt.addImage)
  4. イメージ画像のロードチェック(mt.checkID,mt.checkAll)
    又はチェックなしでイメージ画像のロード完了を待つ(mt.waitForID,mt.waitForAll)
  5. 完了ならば(true)イメージ画像の描画
  6. 完了でなければ(false)「ただ今ロード中です!」を表示(drawString)


 
 INDEX
  課題 Java 簡単なアニメーション(+メディアトラッカー)
1.プログラムの仕様変更
  2.プログラムの説明
  3.確認テスト
Top
Copyright© 2003-2007 FumikiChan All Rights Reserved.
http://www.fumikichan.net/