home *** CD-ROM | disk | FTP | other *** search
- import java.awt.image.MemoryImageSource;
-
- public class TearTransition extends BannerTransition {
- static final float INITIAL_X_CROSS = 1.6F;
- static final float X_CROSS_DIVISOR = 3.5F;
- float xCross;
-
- public TearTransition() {
- super.numOfFrames = 7;
- }
-
- public void finishInit() {
- System.arraycopy(super.owner.banners[super.owner.currentBanner].imagePixels, 0, super.workPixels, 0, super.imageWidth);
- System.arraycopy(super.owner.banners[super.owner.nextBanner].imagePixels, super.imageWidth, super.workPixels, super.imageWidth, super.pixelsPerImage - super.imageWidth);
- this.xCross = 1.6F;
-
- for(int var1 = super.numOfFrames - 1; var1 >= 0; --var1) {
- try {
- Thread.sleep(100L);
- } catch (InterruptedException var3) {
- }
-
- this.Tear();
-
- try {
- Thread.sleep(150L);
- } catch (InterruptedException var2) {
- }
-
- super.frames[var1] = super.owner.createImage(new MemoryImageSource(super.imageWidth, super.imageHeight, super.workPixels, 0, super.imageWidth));
- super.owner.prepareImage(super.frames[var1], super.owner);
- this.xCross /= 3.5F;
- }
-
- super.workPixels = null;
- }
-
- public void Tear() {
- int var3;
- int var2 = var3 = super.imageWidth;
-
- for(int var4 = 1; var4 < super.imageHeight; ++var4) {
- float var1 = this.xCross * (float)var4;
- if (var1 >= 0.5F) {
- float var11 = 0.0F;
- ++var1;
- int var12 = 0;
-
- do {
- super.workPixels[var2++] = super.owner.banners[super.owner.currentBanner].imagePixels[var3 + var12];
- var12 = (int)(var11 += var1);
- } while(var12 < super.imageWidth);
- } else {
- float var5 = 1.0F / var1;
- float var6 = var5 / 2.0F + 1.5F;
- int var7 = 0;
- int var8 = 0;
-
- for(int var9 = (int)var6; var7 + var8 + var9 < super.imageWidth; var9 = (int)var6 - var7) {
- System.arraycopy(super.owner.banners[super.owner.currentBanner].imagePixels, var2 + var8, super.workPixels, var2, var9);
- ++var8;
- var6 += var5;
- var2 += var9;
- var7 += var9;
- }
-
- int var13 = super.imageWidth - var8 - var7;
- System.arraycopy(super.owner.banners[super.owner.currentBanner].imagePixels, var2 + var8, super.workPixels, var2, var13);
- }
-
- var2 = var3 += super.imageWidth;
- }
-
- }
- }
-