home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2003 March / DPPCPRO0303.ISO / Netfusion / data1.cab / Components / AdBanner / TearTransition.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-12-10  |  1.9 KB  |  76 lines

  1. import java.awt.image.MemoryImageSource;
  2.  
  3. public class TearTransition extends BannerTransition {
  4.    static final float INITIAL_X_CROSS = 1.6F;
  5.    static final float X_CROSS_DIVISOR = 3.5F;
  6.    float xCross;
  7.  
  8.    public TearTransition() {
  9.       super.numOfFrames = 7;
  10.    }
  11.  
  12.    public void finishInit() {
  13.       System.arraycopy(super.owner.banners[super.owner.currentBanner].imagePixels, 0, super.workPixels, 0, super.imageWidth);
  14.       System.arraycopy(super.owner.banners[super.owner.nextBanner].imagePixels, super.imageWidth, super.workPixels, super.imageWidth, super.pixelsPerImage - super.imageWidth);
  15.       this.xCross = 1.6F;
  16.  
  17.       for(int var1 = super.numOfFrames - 1; var1 >= 0; --var1) {
  18.          try {
  19.             Thread.sleep(100L);
  20.          } catch (InterruptedException var3) {
  21.          }
  22.  
  23.          this.Tear();
  24.  
  25.          try {
  26.             Thread.sleep(150L);
  27.          } catch (InterruptedException var2) {
  28.          }
  29.  
  30.          super.frames[var1] = super.owner.createImage(new MemoryImageSource(super.imageWidth, super.imageHeight, super.workPixels, 0, super.imageWidth));
  31.          super.owner.prepareImage(super.frames[var1], super.owner);
  32.          this.xCross /= 3.5F;
  33.       }
  34.  
  35.       super.workPixels = null;
  36.    }
  37.  
  38.    public void Tear() {
  39.       int var3;
  40.       int var2 = var3 = super.imageWidth;
  41.  
  42.       for(int var4 = 1; var4 < super.imageHeight; ++var4) {
  43.          float var1 = this.xCross * (float)var4;
  44.          if (var1 >= 0.5F) {
  45.             float var11 = 0.0F;
  46.             ++var1;
  47.             int var12 = 0;
  48.  
  49.             do {
  50.                super.workPixels[var2++] = super.owner.banners[super.owner.currentBanner].imagePixels[var3 + var12];
  51.                var12 = (int)(var11 += var1);
  52.             } while(var12 < super.imageWidth);
  53.          } else {
  54.             float var5 = 1.0F / var1;
  55.             float var6 = var5 / 2.0F + 1.5F;
  56.             int var7 = 0;
  57.             int var8 = 0;
  58.  
  59.             for(int var9 = (int)var6; var7 + var8 + var9 < super.imageWidth; var9 = (int)var6 - var7) {
  60.                System.arraycopy(super.owner.banners[super.owner.currentBanner].imagePixels, var2 + var8, super.workPixels, var2, var9);
  61.                ++var8;
  62.                var6 += var5;
  63.                var2 += var9;
  64.                var7 += var9;
  65.             }
  66.  
  67.             int var13 = super.imageWidth - var8 - var7;
  68.             System.arraycopy(super.owner.banners[super.owner.currentBanner].imagePixels, var2 + var8, super.workPixels, var2, var13);
  69.          }
  70.  
  71.          var2 = var3 += super.imageWidth;
  72.       }
  73.  
  74.    }
  75. }
  76.