80 lines
1.8 KiB
Java
80 lines
1.8 KiB
Java
import java.awt.*;
|
|
import java.applet.Applet;
|
|
|
|
public class Animate extends java.applet.Applet implements Runnable
|
|
{
|
|
Image mImages[];
|
|
Thread mTimerThread;
|
|
int mImageCount;
|
|
int mSleepTime;
|
|
int mImageIndex;
|
|
String mImagePrefix;
|
|
|
|
MediaTracker mMediaTracker;
|
|
|
|
public Animate()
|
|
{
|
|
}
|
|
public void init()
|
|
{
|
|
mImageCount=Integer.parseInt(getParameter("image_count"));
|
|
mSleepTime=Integer.parseInt(getParameter("sleep"));
|
|
mImagePrefix=getParameter("prefix");
|
|
mImages=new Image[imageCount()];
|
|
mImageIndex=0;
|
|
}
|
|
public void start()
|
|
{
|
|
if(null==mTimerThread){mTimerThread=new Thread(this);mTimerThread.start();}
|
|
if(null==mMediaTracker)mMediaTracker=new MediaTracker(this);
|
|
for(int mediaIndex=0;mediaIndex<imageCount();mediaIndex++)
|
|
{
|
|
String postFix=String.valueOf(mediaIndex+1);
|
|
mMediaTracker.addImage(mImages[mediaIndex]=getImage(getCodeBase(),imagePrefix()+postFix+".jpg"),mediaIndex);
|
|
}
|
|
try{mMediaTracker.waitForAll(50);}
|
|
catch(InterruptedException interruptedException){;}
|
|
repaint();
|
|
}
|
|
public void stop()
|
|
{
|
|
if(null!=mTimerThread)
|
|
{
|
|
mTimerThread.stop();
|
|
mTimerThread=null;
|
|
}
|
|
}
|
|
public void run()
|
|
{
|
|
while(mTimerThread!=null)
|
|
{
|
|
try{Thread.sleep(sleepTime());}
|
|
catch(InterruptedException interruptedException){;}
|
|
repaint();
|
|
mImageIndex++;
|
|
if(mImageIndex>=imageCount())mImageIndex=0;
|
|
}
|
|
}
|
|
public void update(Graphics graphics)
|
|
{
|
|
paint(graphics);
|
|
}
|
|
public void paint(Graphics graphics)
|
|
{
|
|
if(true==mMediaTracker.checkID(mImageIndex))graphics.drawImage(mImages[mImageIndex],0,0,this);
|
|
else if(true==mMediaTracker.checkID(0))graphics.drawImage(mImages[0],0,0,this);
|
|
}
|
|
private int imageCount()
|
|
{
|
|
return mImageCount;
|
|
}
|
|
private int sleepTime()
|
|
{
|
|
return mSleepTime;
|
|
}
|
|
private String imagePrefix()
|
|
{
|
|
return mImagePrefix;
|
|
}
|
|
}
|