FileDocCategorySizeDatePackage
AniArea.javaAPI DocSun JDK 1.5.0 Example3835Sat Jan 08 15:09:02 GMT 2005None

AniArea

public class AniArea extends ImageMapArea
This ImageArea provides for a button that animates when the mouse is over it. The animation is specifed as a base image that contains all of the animation frames and then a series of X,Y coordinate pairs that define the top left corner of each new frame.
author
Chuck McManis
version
1.16, 07/26/04

Fields Summary
Image
sourceImage
int
nFrames
int[]
coords
int
currentFrame
Constructors Summary
Methods Summary
public booleananimate()

	if (entered) {
	    repaint();
	}
	return entered;
    
public voidenter()

	currentFrame = 0;
	parent.startAnimation();
    
public java.lang.StringgetAppletInfo()

    return "Title: AniArea \nAuthor: Chuck McManis \nThis ImageMapArea subclass provides for a button that animates when the mouse is over it. The animation is specifed as a base image that contains all of the animation frames and then a series of X,Y coordinate pairs that define the top left corner of each new frame.";
  
public voidhandleArg(java.lang.String s)


        
	StringTokenizer st = new StringTokenizer(s, ", ");
	int	i;
        String imgName;

	imgName = st.nextToken();
	try {
	    sourceImage = parent.getImage(new URL(parent.getDocumentBase(),
						  imgName));
	    parent.addImage(sourceImage);
	} catch (MalformedURLException e) {}

	nFrames = 0;
	coords = new int[40];

	while (st.hasMoreTokens()) {
	    coords[nFrames*2]     = Integer.parseInt(st.nextToken());
	    coords[(nFrames*2)+1] = Integer.parseInt(st.nextToken());
	    nFrames++;
	    if (nFrames > 19)
		break;
	}
    
public voidhighlight(java.awt.Graphics g)

	if (entered) {
	    drawImage(g, sourceImage, 
		      X-coords[currentFrame*2], Y-coords[(currentFrame*2)+1],
		      X, Y, W, H);
	    currentFrame++;
	    if (currentFrame >= nFrames)
		currentFrame = 0;
	}