All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class shinSoft.DoubleOffscreenAnimator

java.lang.Object
   |
   +----java.awt.Component
           |
           +----java.awt.Container
                   |
                   +----java.awt.Panel
                           |
                           +----java.applet.Applet
                                   |
                                   +----shinSoft.DoubleOffscreenAnimator

public abstract class DoubleOffscreenAnimator
extends Applet
implements Runnable
ダブルオフスクリーンアニメーション用アプレット - DoubleOffscreenAnimator.class このクラスは処理の重たいアニメーションのためのオフスクリーン制御を行う abstract な Applet のサブクラスです。
単独のオフスクリーンは描画のちらつき減少させることができますが、 描画処理が重くなるとやはりちらつきます。 DoubleOffscreenAnimator クラスはオフスクリーンを2つ交互に使用することで 描画処理中の表示要求があってもちらつくことを防止します。
DoubleOffscreenAnimator で行う制御サービスは以下の通りです。
  1. オフスクリーン(二重)のスイッチング制御
  2. アニメーション間隔(タイマ 又は スレッドスイッチング)の制御
  3. Border クラスを使用したボーダ枠の描画サービス
  4. Border 枠を描画した場合のクリッピング
このクラスのサブクラスの基本的な構造は以下の通りです。
 public class ClassName extends DoubleOffscreenAnimator {
   void initializePreHook(){
     DoubleOffscreenAnimator のデフォルトの初期値の変更などの
     DoubleOffscreenAnimator の動作定義(必要に応じて作成する)
   }
   void borderParamPreHook(Border b){
     Border クラスの初期化のデフォルト値等の設定(必要に応じて作成する)
   }
   void initialize(){
     Applet の 場合の init() と同様の初期処理(必須)
   }
   boolean runPreHook(){
     ループ処理を開始する前の事前準備(必要に応じて作成する)
     return true;  (終了させる場合は false で戻る)
   }
   int repaintPreHook(Graphics g){
     グラフィックス g に対してアニメーションの描画をする
     (必須ではないが、定義しないと意味がない (^^;)
   }
   void destroyPreHook(){
     インスタンス破壊時にしておく後処理(必要に応じて作成する)
   }
 }

(c)Copyright 1997 Shinichi Hagiwara. All rights reserved.

Version:
1.0, 01/08/98
Author:
Shinichi Hagiwara

Variable Index

 o awtBorder
生成した Border クラスのインスタンス。
 o awtHeight
アプレットの矩形サイズ。 initializePreHook() ではこの値のみ参照できる。
 o awtWidth
アプレットの矩形サイズ。 initializePreHook() ではこの値のみ参照できる。
 o borderDrawRect
描画領域
 o DOS_NOPAINT
repaintPreHook() メソッドの戻り値 - 描画の必要なし
 o DOS_REPAINT
repaintPreHook() メソッドの戻り値 - 描画が必要
 o DOS_TERMINATE
repaintPreHook() メソッドの戻り値 - スレッド終了
 o enableBorderService
Border クラスを生成し、ボーダ枠を描画する。 この値は initializePreHook() で修正することができる。
 o enableDoubleScreen
オフスクリーンの二重化を有効にするかどうかの指定 この値は initializePreHook() で修正することができる。
 o intervalTimer
repaintPreHook() を呼出す時間間隔の初期値。 この値は initializePreHook() で修正することができる。
 o needClipBorderRect
ボーダ枠を描画した時枠内の矩形領域をクリップする。 この値は initializePreHook() で修正することができる。
 o needFillRect
背景を指定された色で塗りつぶす。 この値は initializePreHook() で修正することができる。
 o offGraphics
オフスクリーングラフィックス。 preGraphics は描画対象のグラフィックスで、 offGraphics は表示対象のグラフィックス
 o offImage
オフスクリーンイメージ。 preImage は描画対象のイメージで、 offImage は表示対象のイメージ。
 o preGraphics
オフスクリーングラフィックス。 preGraphics は描画対象のグラフィックスで、 offGraphics は表示対象のグラフィックス
 o preImage
オフスクリーンイメージ。 preImage は描画対象のイメージで、 offImage は表示対象のイメージ。
 o tagBgColor
ボーダ枠を抑止し、背景色の描画を指定した場合に使用する背景色のタグ名 この値は initializePreHook() で修正することができる。
 o tagIntervalTimer
repaintPreHook() を呼出す時間間隔を指定するタグ名。 この値は initializePreHook() で修正することができる。
 o thread
スレッド
 o threadPriority
スレッドの優先順位 この値は initializePreHook() で修正することができる。
 o yieldInsteadOfSleep
repaintPreHook() を呼出す方法を Thread.sleep() ではなく Thread.yield() にする。 この値は initializePreHook() で修正することができる。

Constructor Index

 o DoubleOffscreenAnimator()

Method Index

 o borderParamPreHook(Border)
Border クラスのパラメータ設定に先立ち、必要な変更がある場合に定義します。 デフォルトでは何もしません。
 o clear()
オフスクリーンイメージの描画領域を背景色でクリアします。
 o destroy()
DoubleOffscreenAnimator クラスで使用している領域を解放します。 このメソッドでは以下の処理を行います。
  1. destroyPreHook() を呼出す
  2. 使用している Image, Graphics クラスを解放する
このメソッドを書き換えることはできません。
 o destroyPreHook()
destroy メソッド内の処理を行う前に、必要な処理がある場合に定義します。 デフォルトでは何もしません。
 o getAppletInfo()
このアプレットに関する情報を返します。
 o getClassName()
このクラスのクラス名を返します。
 o getParameterInfo()
このアプレットで使用できるパラメータに関する情報を返します。 この関数は initializePreHook() では機能しません。 実際には DoubleOffscreenAnimator のサブクラスで再定義し、このクラスに関する パラメータ情報を super.getParameterInfo() で取得し、 mergeInfo()関数で統合して使用します。
 o getVersion()
このクラスのバージョンに関する情報を返します。
 o init()
DoubleOffscreenAnimator を初期化します。 このメソッドでは以下の処理を行います。
  1. initializePreHook() を呼出す
  2. オフスクリーンイメージの生成
  3. borderParamPreHook() を呼出す(ボーダ枠指定時のみ)
  4. オフスクリーンにボーダ枠を描画(指定時のみ)
  5. background を設定。
  6. initialize() を呼出す
このメソッドを書き換えることはできません。
 o initialize()
初期化処理を定義しなければなりません。 デフォルトでは定義してありません。
 o initializePreHook()
DoubleOffscreenAnimator クラスの初期化処理に先立ち、必要な変更がある場合に 定義します。 デフォルトでは何もしません。
 o mergeInfo(String[][], String[][])
2つの String[][] 配列を1つに結合します。 2つ配列の内いずれかに null を指定すると他方の配列をそのまま返します。
 o paint(Graphics)
イメージを描画します。 デフォルトではオフスクリーンイメージを描画します。
 o repaintPreHook(Graphics)
グラフィックスに対する描画を定義します。 デフォルトでは何もしません。
 o run()
スレッドの実行の本体。 このメソッドでは以下の処理を行います。
  1. 優先度の設定
  2. runPreHook() を呼出す
  3. 背景を塗りつぶす(指定時のみ)
  4. repaintPreHook() を呼出す
  5. 時間待ちをする
このメソッドを書き換えることはできません。
 o runPreHook()
run メソッド内のループ処理を行う前に、必要な処理がある場合に定義します。 デフォルトでは何もしません。
 o start()
アニメーションの描画のためのスレッドを生成します。 このメソッドでは以下の処理を行います。
  1. startPreHook() を呼出す
  2. スレッドを生成する
  3. startPostHook() を呼出す
このメソッドを書き換えることはできません。
 o startPostHook()
スレッド生成後に必要な処理がある場合に定義します。 デフォルトでは何もしません。
 o startPreHook()
start メソッドでスレッドを生成するに先立ち、必要な処理がある場合に定義します。 デフォルトでは何もしません。
 o stop()
スレッドを停止します。 このメソッドでは以下の処理を行います。
  1. stopPreHook() を呼出す
  2. スレッドを停止する
  3. stopPostHook() を呼出す
このメソッドを書き換えることはできません。
 o stopPostHook()
stop メソッドでスレッドを停止した後、必要な処理がある場合に定義します。 デフォルトでは何もしません。
 o stopPreHook()
stop メソッドでスレッドを停止するに先立ち、必要な処理がある場合に定義します。 デフォルトでは何もしません。
 o switchScreen()
オフスクリーンイメージの描画及び表示イメージをトグルします。
 o update(Graphics)
paint() に先立ち、必要な処理がある場合に定義します。 デフォルトでは paint(Graphics) を呼出します。

Variables

 o thread
 protected Thread thread
スレッド

 o threadPriority
 protected int threadPriority
スレッドの優先順位 この値は initializePreHook() で修正することができる。

 o tagIntervalTimer
 protected String tagIntervalTimer
repaintPreHook() を呼出す時間間隔を指定するタグ名。 この値は initializePreHook() で修正することができる。

 o intervalTimer
 protected int intervalTimer
repaintPreHook() を呼出す時間間隔の初期値。 この値は initializePreHook() で修正することができる。

 o tagBgColor
 protected String tagBgColor
ボーダ枠を抑止し、背景色の描画を指定した場合に使用する背景色のタグ名 この値は initializePreHook() で修正することができる。

 o awtWidth
 protected int awtWidth
アプレットの矩形サイズ。 initializePreHook() ではこの値のみ参照できる。

 o awtHeight
 protected int awtHeight
アプレットの矩形サイズ。 initializePreHook() ではこの値のみ参照できる。

 o enableDoubleScreen
 protected boolean enableDoubleScreen
オフスクリーンの二重化を有効にするかどうかの指定 この値は initializePreHook() で修正することができる。

 o yieldInsteadOfSleep
 protected boolean yieldInsteadOfSleep
repaintPreHook() を呼出す方法を Thread.sleep() ではなく Thread.yield() にする。 この値は initializePreHook() で修正することができる。

 o enableBorderService
 protected boolean enableBorderService
Border クラスを生成し、ボーダ枠を描画する。 この値は initializePreHook() で修正することができる。

 o needFillRect
 protected boolean needFillRect
背景を指定された色で塗りつぶす。 この値は initializePreHook() で修正することができる。

 o needClipBorderRect
 protected boolean needClipBorderRect
ボーダ枠を描画した時枠内の矩形領域をクリップする。 この値は initializePreHook() で修正することができる。

 o awtBorder
 protected Border awtBorder
生成した Border クラスのインスタンス。

 o preImage
 protected Image preImage
オフスクリーンイメージ。 preImage は描画対象のイメージで、 offImage は表示対象のイメージ。

 o offImage
 protected Image offImage
オフスクリーンイメージ。 preImage は描画対象のイメージで、 offImage は表示対象のイメージ。

 o preGraphics
 protected Graphics preGraphics
オフスクリーングラフィックス。 preGraphics は描画対象のグラフィックスで、 offGraphics は表示対象のグラフィックス

 o offGraphics
 protected Graphics offGraphics
オフスクリーングラフィックス。 preGraphics は描画対象のグラフィックスで、 offGraphics は表示対象のグラフィックス

 o borderDrawRect
 protected Rectangle borderDrawRect
描画領域

 o DOS_TERMINATE
 protected static final int DOS_TERMINATE
repaintPreHook() メソッドの戻り値 - スレッド終了

 o DOS_NOPAINT
 protected static final int DOS_NOPAINT
repaintPreHook() メソッドの戻り値 - 描画の必要なし

 o DOS_REPAINT
 protected static final int DOS_REPAINT
repaintPreHook() メソッドの戻り値 - 描画が必要

Constructors

 o DoubleOffscreenAnimator
 public DoubleOffscreenAnimator()

Methods

 o getVersion
 public static String getVersion()
このクラスのバージョンに関する情報を返します。

Returns:
このクラスのバージョン番号( 例: "1.00 Beta" )
 o getClassName
 public static String getClassName()
このクラスのクラス名を返します。

Returns:
クラス名( 例: "DoubleOffscreenAnimator.class" )
 o getAppletInfo
 public String getAppletInfo()
このアプレットに関する情報を返します。

Returns:
アプレット情報
Overrides:
getAppletInfo in class Applet
 o getParameterInfo
 public String[][] getParameterInfo()
このアプレットで使用できるパラメータに関する情報を返します。 この関数は initializePreHook() では機能しません。 実際には DoubleOffscreenAnimator のサブクラスで再定義し、このクラスに関する パラメータ情報を super.getParameterInfo() で取得し、 mergeInfo()関数で統合して使用します。

Returns:
パラメータ情報
Overrides:
getParameterInfo in class Applet
 o mergeInfo
 protected String[][] mergeInfo(String a[][],
                                String b[][])
2つの String[][] 配列を1つに結合します。 2つ配列の内いずれかに null を指定すると他方の配列をそのまま返します。

Parameters:
a,b - String[][] 配列 / null
Returns:
結合した String[][] 配列
 o init
 public final void init()
DoubleOffscreenAnimator を初期化します。 このメソッドでは以下の処理を行います。
  1. initializePreHook() を呼出す
  2. オフスクリーンイメージの生成
  3. borderParamPreHook() を呼出す(ボーダ枠指定時のみ)
  4. オフスクリーンにボーダ枠を描画(指定時のみ)
  5. background を設定。
  6. initialize() を呼出す
このメソッドを書き換えることはできません。

Overrides:
init in class Applet
 o switchScreen
 protected synchronized void switchScreen()
オフスクリーンイメージの描画及び表示イメージをトグルします。

 o clear
 protected synchronized void clear()
オフスクリーンイメージの描画領域を背景色でクリアします。

 o run
 public final void run()
スレッドの実行の本体。 このメソッドでは以下の処理を行います。
  1. 優先度の設定
  2. runPreHook() を呼出す
  3. 背景を塗りつぶす(指定時のみ)
  4. repaintPreHook() を呼出す
  5. 時間待ちをする
このメソッドを書き換えることはできません。

 o start
 public final void start()
アニメーションの描画のためのスレッドを生成します。 このメソッドでは以下の処理を行います。
  1. startPreHook() を呼出す
  2. スレッドを生成する
  3. startPostHook() を呼出す
このメソッドを書き換えることはできません。

Overrides:
start in class Applet
 o stop
 public final void stop()
スレッドを停止します。 このメソッドでは以下の処理を行います。
  1. stopPreHook() を呼出す
  2. スレッドを停止する
  3. stopPostHook() を呼出す
このメソッドを書き換えることはできません。

Overrides:
stop in class Applet
 o destroy
 public final synchronized void destroy()
DoubleOffscreenAnimator クラスで使用している領域を解放します。 このメソッドでは以下の処理を行います。
  1. destroyPreHook() を呼出す
  2. 使用している Image, Graphics クラスを解放する
このメソッドを書き換えることはできません。

Overrides:
destroy in class Applet
 o initializePreHook
 protected void initializePreHook()
DoubleOffscreenAnimator クラスの初期化処理に先立ち、必要な変更がある場合に 定義します。 デフォルトでは何もしません。

 o borderParamPreHook
 protected void borderParamPreHook(Border b)
Border クラスのパラメータ設定に先立ち、必要な変更がある場合に定義します。 デフォルトでは何もしません。

Parameters:
b - 作成した Border クラスのインスタンス。
See Also:
Border
 o startPreHook
 protected void startPreHook()
start メソッドでスレッドを生成するに先立ち、必要な処理がある場合に定義します。 デフォルトでは何もしません。

 o startPostHook
 protected void startPostHook()
スレッド生成後に必要な処理がある場合に定義します。 デフォルトでは何もしません。

 o stopPreHook
 protected void stopPreHook()
stop メソッドでスレッドを停止するに先立ち、必要な処理がある場合に定義します。 デフォルトでは何もしません。

 o stopPostHook
 protected void stopPostHook()
stop メソッドでスレッドを停止した後、必要な処理がある場合に定義します。 デフォルトでは何もしません。

 o runPreHook
 protected boolean runPreHook()
run メソッド内のループ処理を行う前に、必要な処理がある場合に定義します。 デフォルトでは何もしません。

Returns:
実行後の処理を指定します。 続行の場合は true、中止の場合は false を指定します。
 o destroyPreHook
 protected void destroyPreHook()
destroy メソッド内の処理を行う前に、必要な処理がある場合に定義します。 デフォルトでは何もしません。

 o repaintPreHook
 protected int repaintPreHook(Graphics g)
グラフィックスに対する描画を定義します。 デフォルトでは何もしません。

Parameters:
g - 描画対象イメージのグラフィックス
Returns:
実行後の処理を指定します。
See Also:
DOS_TERMINATE, DOS_REPAINT, DOS_NOPAINT
 o update
 public void update(Graphics g)
paint() に先立ち、必要な処理がある場合に定義します。 デフォルトでは paint(Graphics) を呼出します。

Overrides:
update in class Component
 o paint
 public void paint(Graphics g)
イメージを描画します。 デフォルトではオフスクリーンイメージを描画します。

Overrides:
paint in class Container
 o initialize
 protected abstract void initialize()
初期化処理を定義しなければなりません。 デフォルトでは定義してありません。


All Packages  Class Hierarchy  This Package  Previous  Next  Index