home *** CD-ROM | disk | FTP | other *** search
/ Your Web Site Creator / Your Web Site Creator.iso / WebSite / data1.cab / Program_Executable_Files / Classes / ANIMATE2.CLA (.txt) < prev    next >
Encoding:
Java Class File  |  1999-01-13  |  3.5 KB  |  135 lines

  1. import java.applet.Applet;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8. import java.awt.image.ImageObserver;
  9.  
  10. public class AnimateCanvas2 extends Canvas implements Runnable {
  11.    Image osImage;
  12.    Graphics osg;
  13.    Image[] images;
  14.    int currImage;
  15.    int delayTime;
  16.    int speed;
  17.    Thread theThread;
  18.    boolean started = false;
  19.    boolean inDelay = false;
  20.    int pauseTime;
  21.    Color bkColor;
  22.    Image bkImage;
  23.  
  24.    public AnimateCanvas2(Applet var1, int var2) {
  25.       this.GetParameters(var1, var2);
  26.    }
  27.  
  28.    void GetParameters(Applet var1, int var2) {
  29.       String var3 = var1.getParameter("animateSpeed" + var2);
  30.       this.speed = AppletParam2.GetInt(var3, 500);
  31.       this.delayTime = this.speed;
  32.       var3 = var1.getParameter("animatePauseTime" + var2);
  33.       this.pauseTime = AppletParam2.GetInt(var3, 500);
  34.       var3 = var1.getParameter("animateImageList" + var2);
  35.       if (var3 != null) {
  36.          var3 = var1.getParameter("animateImageStrip" + var2);
  37.          boolean var4 = AppletParam2.GetBoolean(var3, false);
  38.          if (var4) {
  39.             var3 = var1.getParameter("animateImageWidth" + var2);
  40.             int var5 = AppletParam2.GetInt(var3, 100);
  41.             var3 = var1.getParameter("animateImageList" + var2);
  42.             this.images = AppletParam2.GetImageStrip(var1, var3, var5);
  43.          } else {
  44.             var3 = var1.getParameter("animateImageList" + var2);
  45.             this.images = AppletParam2.GetImageList(var1, var3);
  46.          }
  47.       }
  48.  
  49.       var3 = var1.getParameter("animateBkColor" + var2);
  50.       this.bkColor = AppletParam2.GetColor(var3, (Color)null);
  51.       if (this.bkColor != null) {
  52.          ((Component)this).setBackground(this.bkColor);
  53.       }
  54.  
  55.       var3 = var1.getParameter("animateBkImage" + var2);
  56.       this.bkImage = var1.getImage(var1.getCodeBase(), var3);
  57.    }
  58.  
  59.    public void run() {
  60.       while(true) {
  61.          if (this.theThread.isAlive()) {
  62.             try {
  63.                ((Component)this).repaint();
  64.                if (this.currImage == this.images.length - 1) {
  65.                   this.currImage = 0;
  66.                } else {
  67.                   ++this.currImage;
  68.                }
  69.  
  70.                if (this.currImage == 0) {
  71.                   Thread.sleep((long)this.pauseTime);
  72.                } else {
  73.                   Thread.sleep((long)this.speed);
  74.                }
  75.             } catch (InterruptedException var1) {
  76.             }
  77.          }
  78.       }
  79.    }
  80.  
  81.    public void update(Graphics var1) {
  82.       if (this.osImage == null) {
  83.          this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
  84.          this.osg = this.osImage.getGraphics();
  85.       }
  86.  
  87.       this.osg.setColor(((Component)this).getBackground());
  88.       this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
  89.       if (this.bkImage != null) {
  90.          int var2 = this.bkImage.getWidth(this);
  91.          int var3 = this.bkImage.getHeight(this);
  92.          int var4 = ((Component)this).size().width / var2;
  93.          int var5 = ((Component)this).size().height / var3;
  94.          ++var4;
  95.          ++var5;
  96.  
  97.          for(int var6 = 0; var6 < var5; ++var6) {
  98.             for(int var7 = 0; var7 < var4; ++var7) {
  99.                this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
  100.             }
  101.          }
  102.       }
  103.  
  104.       if (this.images != null && this.images.length > 0 && this.images[this.currImage] != null) {
  105.          this.osg.drawImage(this.images[this.currImage], 0, 0, ((Component)this).size().width, ((Component)this).size().height, this);
  106.       }
  107.  
  108.       var1.drawImage(this.osImage, 0, 0, (ImageObserver)null);
  109.    }
  110.  
  111.    public void Start() {
  112.       this.theThread = new Thread(this);
  113.       this.theThread.start();
  114.    }
  115.  
  116.    public void Stop() {
  117.       this.theThread.stop();
  118.       this.theThread = null;
  119.    }
  120.  
  121.    public synchronized void reshape(int var1, int var2, int var3, int var4) {
  122.       super.reshape(var1, var2, var3, var4);
  123.       this.osImage = null;
  124.       this.osg = null;
  125.    }
  126.  
  127.    public Dimension minimumSize() {
  128.       return new Dimension(10, 10);
  129.    }
  130.  
  131.    public Dimension preferredSize() {
  132.       return new Dimension(10, 10);
  133.    }
  134. }
  135.