home *** CD-ROM | disk | FTP | other *** search
/ MACD 4 / MACD4.iso / Internet / Java / ui / drawing / example / AnimatorApplet.class (.txt) next >
Encoding:
Java Class File  |  1978-03-06  |  1.9 KB  |  75 lines

  1. import java.applet.Applet;
  2. import java.awt.Component;
  3. import java.awt.Event;
  4. import java.awt.Graphics;
  5.  
  6. public class AnimatorApplet extends Applet implements Runnable {
  7.    int frameNumber = -1;
  8.    int delay;
  9.    Thread animatorThread;
  10.    boolean frozen = false;
  11.  
  12.    public void init() {
  13.       int var2 = 10;
  14.       String var1 = ((Applet)this).getParameter("fps");
  15.  
  16.       try {
  17.          if (var1 != null) {
  18.             var2 = Integer.parseInt(var1);
  19.          }
  20.       } catch (Exception var3) {
  21.       }
  22.  
  23.       this.delay = var2 > 0 ? 1000 / var2 : 100;
  24.    }
  25.  
  26.    public void start() {
  27.       if (!this.frozen) {
  28.          if (this.animatorThread == null) {
  29.             this.animatorThread = new Thread(this);
  30.          }
  31.  
  32.          this.animatorThread.start();
  33.       }
  34.  
  35.    }
  36.  
  37.    public void stop() {
  38.       this.animatorThread = null;
  39.    }
  40.  
  41.    public boolean mouseDown(Event var1, int var2, int var3) {
  42.       if (this.frozen) {
  43.          this.frozen = false;
  44.          this.start();
  45.       } else {
  46.          this.frozen = true;
  47.          this.stop();
  48.       }
  49.  
  50.       return true;
  51.    }
  52.  
  53.    public void run() {
  54.       Thread.currentThread().setPriority(1);
  55.       long var1 = System.currentTimeMillis();
  56.  
  57.       while(Thread.currentThread() == this.animatorThread) {
  58.          ++this.frameNumber;
  59.          ((Component)this).repaint();
  60.  
  61.          try {
  62.             var1 += (long)this.delay;
  63.             Thread.sleep(Math.max(0L, var1 - System.currentTimeMillis()));
  64.          } catch (InterruptedException var3) {
  65.             return;
  66.          }
  67.       }
  68.  
  69.    }
  70.  
  71.    public void paint(Graphics var1) {
  72.       var1.drawString("Frame " + this.frameNumber, 0, 30);
  73.    }
  74. }
  75.