home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / FREI / MB-JAVA.EXE / Wobble.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-11-20  |  2.9 KB  |  109 lines

  1. import java.applet.Applet;
  2. import java.awt.Container;
  3. import java.awt.Event;
  4. import java.awt.Image;
  5. import java.awt.LayoutManager;
  6. import java.awt.Panel;
  7.  
  8. public class Wobble extends Applet implements Runnable {
  9.    WobbleCanvas wobbler;
  10.    Thread animatorThread;
  11.    boolean frozen = false;
  12.    int moveAdd = 1;
  13.  
  14.    public void init() {
  15.       super.init();
  16.       ((Container)this).setLayout((LayoutManager)null);
  17.       ((Panel)this).addNotify();
  18.       int color = 0;
  19.       String paraString = ((Applet)this).getParameter("COLOR");
  20.       if (paraString != null) {
  21.          try {
  22.             color = Integer.parseInt(paraString, 16);
  23.          } catch (NumberFormatException var7) {
  24.          }
  25.       }
  26.  
  27.       Image image = ((Applet)this).getImage(((Applet)this).getCodeBase(), ((Applet)this).getParameter("SRC"));
  28.       this.wobbler = new WobbleCanvas(image, color);
  29.       paraString = ((Applet)this).getParameter("AMPLIFY");
  30.       if (paraString != null) {
  31.          try {
  32.             this.wobbler.setAmplitude((double)Integer.parseInt(paraString));
  33.          } catch (NumberFormatException var6) {
  34.          }
  35.       }
  36.  
  37.       paraString = ((Applet)this).getParameter("BASE");
  38.       if (paraString != null) {
  39.          try {
  40.             this.wobbler.setBaseline(Integer.parseInt(paraString));
  41.          } catch (NumberFormatException var5) {
  42.          }
  43.       }
  44.  
  45.       paraString = ((Applet)this).getParameter("MOVE");
  46.       if (paraString != null) {
  47.          try {
  48.             this.moveAdd = Integer.parseInt(paraString);
  49.          } catch (NumberFormatException var4) {
  50.          }
  51.       }
  52.  
  53.       ((Container)this).add(this.wobbler);
  54.    }
  55.  
  56.    public String getAppletInfo() {
  57.       return "Wobble by Marcus Schiesser";
  58.    }
  59.  
  60.    public void start() {
  61.       if (!this.frozen) {
  62.          if (this.animatorThread == null) {
  63.             this.animatorThread = new Thread(this);
  64.          }
  65.  
  66.          this.animatorThread.start();
  67.       }
  68.  
  69.    }
  70.  
  71.    public void stop() {
  72.       this.animatorThread = null;
  73.    }
  74.  
  75.    public boolean mouseDown(Event e, int x, int y) {
  76.       if (this.frozen) {
  77.          this.frozen = false;
  78.          this.start();
  79.       } else {
  80.          this.frozen = true;
  81.          this.stop();
  82.       }
  83.  
  84.       return true;
  85.    }
  86.  
  87.    public boolean handleEvent(Event event) {
  88.       return super.handleEvent(event);
  89.    }
  90.  
  91.    public void run() {
  92.       Thread.currentThread().setPriority(1);
  93.       long startTime = System.currentTimeMillis();
  94.  
  95.       while(Thread.currentThread() == this.animatorThread) {
  96.          this.wobbler.moveDelta(this.moveAdd);
  97.          this.wobbler.repaint();
  98.  
  99.          try {
  100.             startTime += 50L;
  101.             Thread.sleep(Math.max(0L, startTime - System.currentTimeMillis()));
  102.          } catch (InterruptedException var3) {
  103.             return;
  104.          }
  105.       }
  106.  
  107.    }
  108. }
  109.