サウンドと画像の利用

サウンドや画像のデータを扱う機能も、 クラスApplet の内部に用意されています。 それらの機能を説明します。


Appletの内部に組み込まれた機能については、 Appletの解説 Appletのソース・プログラム を見れば調べることができます。 細かい部分を知りたい場合は、これらを参考にしてください。 (ただし英語です。)
ここでは、特に音と画像のデータを取り扱う最も基本的な機能を 紹介します。

最初は音です。
音のデータは、短い効果音から音楽の演奏までさまざまなものが 考えられますが、扱い方は内容とは関係ありません。 音声データのファイルの URL を指定することが全てです。 音声を再生する関数もいくつか用意されていますが、 一番の基本は play() です。
この関数は repaint() と同じように、 処理が必要になった場所で直接呼び出す関数です。


  public void mouseDown( int x, int y ) {
 
       play( "/sounds/ah.au" );
  }

上の例では、マウスのボタンを押した時に 指定された URL を持つ音声データが再生されます。
引数には String クラスのデータが使えます。

次は画像データです。

画像データを扱う場合は、必ず Imageクラスのデータを用意しなければなりません。 Imageクラスは、Graphics や Color などと同じく awtパッケージにあります。
指定した URL のファイルを元にして、Imageクラスのデータを生成する関数も Appletに用意されています。名前を geImage() といいます。 こうして作成されたイメージをアプレットに表示する関数は、 Graphicクラスに用意されている drawImage() という関数です。 名前や所属するクラスが混乱しないように注意してください。 手順をまとめると、次のようになります。

  1. Imageクラスのデータの用意(import命令と変数の宣言)
  2. getImage() によるイメージの作成( init() の中で行う場合が多い)
  3. drawImage() によるイメージの表示( painit() もしくは update() の中で 行う)
実際のプログラムの例も見てみましょう。 (途中の無関係な部分は省略しています。)


import awt.Image;

class AudioImage extends Applet {

    Image backImage = null;

    protected void init() {

         String imageSource = getAttribute("image");
         if( imageSource == null ) {
              imageSource = "/hokusei/staff/fujiki.gif";
         }
         backImage = getImage( imageSource );

         resize( backImage.width, backImage.height );
   }

   public void paint( Graphics g ) {

         g.drawImage( backImage, 0, 0 );
   }
}