ダブルバッファリング

さて最後にチラツキを消しときましょう。ImageSample03b.javaを作ります。

チラツキを消すにはダブルバッファリングを用いれば良いです。アプレットではオフスクリーンイメージを準備してそこからGraphicsを取り出してとか大変でしたが、iαppliでは簡単にダブルバッファリングができるようになってます。

iαppliでダブルバッファリングを用いるには、描画の前にg.lock()を呼んで、描画が終わったらg.unlock(true)を呼べば良いです。簡単ですね。

ではpaintに手を加えます。

public void paint(Graphics g) {
    g.lock();
    g.clearRect(0, 0, getWidth(), getHeight());
    g.drawString("Walking Pupil", 0, 12);
    g.drawImage(image[count], 0, 20);
    g.unlock(true);
}

一番上にg.lock()が、一番下にg.unlock(true)が加わってますね。これで変更完了です。

コンパイル、事前検証、パッケージ化して試してみましょう。

D:\iAppli>ijavac ImageSample03b.java
D:\iAppli>iprev ImageSample03b ImageCanvas
D:\iAppli>cd output
D:\iAppli\output>jar cvMf image03b.jar ImageSample03b.class ImageCanvas.class images

ImageSample03b.class を追加中です。(入 = 343) (出 = 252)(26% 収縮されました)
ImageCanvas.class を追加中です。(入 = 1775) (出 = 972)(45% 収縮されました)
images/ を追加中です。(入 = 0) (出 = 0)(0% 格納されました)
images/01.gif を追加中です。(入 = 776) (出 = 671)(13% 収縮されました)
images/02.gif を追加中です。(入 = 785) (出 = 681)(13% 収縮されました)

ADFはimage03b.jamです。

ダウンロード用HTMLはhttp://www.segi.org/i/j/t/にあるので、iαppl対応携帯をお持ちの方はお試し下さい。

チラツキ消えましたね。


前の項目へ次の項目へ
「iαppliであそぼう!」のページへ
せぎてつ伝言板
このページの感想をどうぞ!
お名前(匿名OK):

メールアドレス:
Valid CSS! 最終更新日 : 2000年2月12日(月)
tetsu@segi.org