FileDocCategorySizeDatePackage
SoundArea.javaAPI DocExample4045Sat Sep 12 03:01:00 BST 1998None

SoundArea

public class SoundArea extends ImageMapArea
An audio feedback ImageArea class. This class extends the basic ImageArea Class to play a sound when the user enters the area.
author
Jim Graham
author
Chuck McManis
version
1.7, 12/06/96

Fields Summary
URL
sound
The URL of the sound to be played.
AudioClip
soundData
boolean
hasPlayed
boolean
isReady
long
lastExit
static final int
HYSTERESIS
Constructors Summary
Methods Summary
public voidenter()
The enter method is called when the mouse enters the area. The sound is played if the mouse has been outside of the area for more then the delay indicated by HYSTERESIS.

	// is the sound sample loaded?
	if (! isReady) {
	    parent.showStatus("Loading media file...");
	    return;
	}

	/*
 	 * So we entered the selection region, play the sound if
	 * we need to. Track the mouse entering and exiting the
	 * the selection box. If it doesn't stay out for more than
	 * "HYSTERESIS" millis, then don't re-play the sound.
	 */
	long now = System.currentTimeMillis();
	if (Math.abs(now - lastExit) < HYSTERESIS) {
	    // if within the window pretend that it was played.
	    hasPlayed = true;
    	    return;
	}

	// Else play the sound.
	if (! hasPlayed && (soundData != null)) {
	    hasPlayed = true;
	    soundData.play();
	}
    
public voidexit()
The exit method is called when the mouse leaves the area.

	if (hasPlayed) {
	    hasPlayed = false;
	    lastExit = System.currentTimeMillis(); // note the time of exit
	}
    
public voidgetMedia()
The applet thread calls the getMedia() method when the applet is started.

	if (sound != null && soundData == null) {
	    soundData = parent.getAudioClip(sound);
	}
	if (soundData == null) {
	    System.out.println("SoundArea: Unable to load data "+sound);
	}
	isReady = true;
    
public voidhandleArg(java.lang.String arg)
The argument is the URL of the sound to be played.


                    
        
	try {
	    sound = new URL(parent.getDocumentBase(), arg);
	} catch (MalformedURLException e) {
	    sound = null;
	}
	hasPlayed = false;