home *** CD-ROM | disk | FTP | other *** search
Wrap
import java.applet.Applet; import java.applet.AudioClip; import java.awt.Component; import java.awt.Event; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.awt.image.CropImageFilter; import java.awt.image.FilteredImageSource; import java.net.URL; import java.util.StringTokenizer; public class Animate1 extends Applet implements Runnable { AudioClip[] sounds; boolean inapplet = false; boolean preload = true; boolean pauseloop = false; // $FF: renamed from: ct CoolTool3 CoolTool3 field_0; Graphics bufferG; Image bufferI; Image background; Image foreground; Image[] images; int frame_count; // $FF: renamed from: fi int int field_1; int width; int height; int cycles; int prevfi; // $FF: renamed from: ts int int field_2; // $FF: renamed from: tr int int field_3; // $FF: renamed from: xp int int field_4; // $FF: renamed from: yp int int field_5; int pxp; int pyp; // $FF: renamed from: mt java.awt.MediaTracker MediaTracker field_6; String[] bgcolors; String[] fgcolors; String[] pauses; String[] sound_activations; String[] targets; String[] transition_list; String[] transition_rates; String[] transition_steps; String[] transition_types; String[] status_messages; String[] x_pos; String[] y_pos; Thread woohoo; URL[] urls; public void init() { this.field_6 = new MediaTracker(this); this.field_0 = new CoolTool3(this); this.width = ((Component)this).size().width; this.height = ((Component)this).size().height; this.field_1 = this.frame_count = 0; this.background = this.field_0.getBackgroundImage(); this.foreground = this.field_0.getForegroundImage(); String var1 = ((Applet)this).getParameter("CYCLES"); this.cycles = var1 != null ? this.field_0.getRandom(var1) : 0; var1 = ((Applet)this).getParameter("PRELOAD"); if (var1 != null) { this.preload = new Boolean(var1.trim()); } var1 = ((Applet)this).getParameter("TRANSITION.LIST"); String var2 = var1 != null ? var1 : "slidein(1-8) | slideout(1-8) | shutter(1-4) | scroll(2:4:6:8)"; StringTokenizer var3 = new StringTokenizer(var2, "|,"); int var4 = var3.countTokens(); this.transition_list = new String[var4]; for(int var5 = 0; var5 < var4; ++var5) { this.transition_list[var5] = var3.nextToken().trim(); } int var6; for(var6 = 0; ((Applet)this).getParameter("IMAGE." + var6) != null; ++var6) { } this.field_1 = 0; this.frame_count = var6; this.images = new Image[this.frame_count]; this.sounds = new AudioClip[this.frame_count]; this.bgcolors = new String[this.frame_count]; this.fgcolors = new String[this.frame_count]; this.pauses = new String[this.frame_count]; this.sound_activations = new String[this.frame_count]; this.targets = new String[this.frame_count]; this.transition_steps = new String[this.frame_count]; this.transition_rates = new String[this.frame_count]; this.transition_types = new String[this.frame_count]; this.status_messages = new String[this.frame_count]; this.x_pos = new String[this.frame_count]; this.y_pos = new String[this.frame_count]; this.urls = new URL[this.frame_count]; for(int var31 = 0; ((Applet)this).getParameter("IMAGE." + var31) != null; ++var31) { var1 = ((Applet)this).getParameter("IMAGE." + var31); StringTokenizer var7 = new StringTokenizer(var1, " |,\t\r\n\f"); try { Image var8 = ((Applet)this).getImage(((Applet)this).getDocumentBase(), var7.nextToken().trim()); if (var7.hasMoreTokens()) { if (var8 != null) { this.field_6.addImage(var8, -1 * (var31 + 1)); } int var9 = this.field_0.getRandom(var7.nextToken()); int var10 = this.field_0.getRandom(var7.nextToken()); int var11 = this.field_0.getRandom(var7.nextToken()); int var12 = this.field_0.getRandom(var7.nextToken()); if (!this.field_6.checkID(-1 * (var31 + 1))) { this.field_6.waitForID(-1 * (var31 + 1)); } this.images[var31] = ((Component)this).createImage(new FilteredImageSource(var8.getSource(), new CropImageFilter(var9, var10, var11, var12))); this.field_6.addImage(this.images[var31], var31 + 1); } else { this.images[var31] = var8; if (this.images[var31] != null) { this.field_6.addImage(this.images[var31], var31 + 1); } } } catch (Exception var15) { System.out.println("001 Error: " + var15); } var1 = ((Applet)this).getParameter("SOUND." + var31); if (var1 != null) { try { this.sounds[var31] = ((Applet)this).getAudioClip(((Applet)this).getDocumentBase(), var1); } catch (Exception var14) { System.out.println("002 Error: " + var14); } } var1 = ((Applet)this).getParameter("BGCOLOR." + var31); if (var1 != null) { this.bgcolors[var31] = var1.trim(); } else { this.bgcolors[var31] = var31 == 0 ? "lightGray" : this.bgcolors[var31 - 1]; } var1 = ((Applet)this).getParameter("FGCOLOR." + var31); if (var1 != null) { this.fgcolors[var31] = var1.trim(); } else { this.fgcolors[var31] = var31 == 0 ? "lightGray" : this.fgcolors[var31 - 1]; } var1 = ((Applet)this).getParameter("SOUND.ACTIVATION." + var31); if (var1 != null) { this.sound_activations[var31] = var1.trim().toLowerCase(); } else { this.sound_activations[var31] = var31 == 0 ? "auto" : this.sound_activations[var31 - 1]; } var1 = ((Applet)this).getParameter("TARGET." + var31); if (var1 != null) { this.targets[var31] = var1.trim(); } else { this.targets[var31] = var31 == 0 ? "_self" : this.targets[var31 - 1]; } var1 = ((Applet)this).getParameter("PAUSE." + var31); if (var1 != null) { this.pauses[var31] = var1.trim(); } else { this.pauses[var31] = var31 == 0 ? "200" : this.pauses[var31 - 1]; } var1 = ((Applet)this).getParameter("TRANSITION.TYPE." + var31); if (var1 != null) { this.transition_types[var31] = var1.trim().toLowerCase(); } else { this.transition_types[var31] = var31 == 0 ? "overwrite()" : this.transition_types[var31 - 1]; } var1 = ((Applet)this).getParameter("TRANSITION.RATE." + var31); if (var1 != null) { this.transition_rates[var31] = var1.trim(); } else { this.transition_rates[var31] = var31 == 0 ? "200" : this.transition_rates[var31 - 1]; } var1 = ((Applet)this).getParameter("TRANSITION.STEP." + var31); if (var1 != null) { this.transition_steps[var31] = var1.trim(); } else { this.transition_steps[var31] = var31 == 0 ? "10" : this.transition_steps[var31 - 1]; } var1 = ((Applet)this).getParameter("POSITION." + var31); if (var1 != null) { StringTokenizer var32 = new StringTokenizer(var1, " |,\t\f\r\n"); this.x_pos[var31] = var32.nextToken().trim(); this.y_pos[var31] = var32.nextToken().trim(); } else { this.x_pos[var31] = var31 == 0 ? "0" : this.x_pos[var31 - 1]; this.y_pos[var31] = var31 == 0 ? "0" : this.y_pos[var31 - 1]; } var1 = ((Applet)this).getParameter("URL." + var31); if (var1 != null) { if (var1.trim().equalsIgnoreCase("null")) { this.urls[var31] = null; } else { try { this.urls[var31] = new URL(((Applet)this).getDocumentBase(), var1.trim()); } catch (Exception var13) { System.out.println("004 Error: " + var13); } } } else { this.urls[var31] = var31 == 0 ? null : this.urls[var31 - 1]; } var1 = ((Applet)this).getParameter("STATUS.MESSAGE." + var31); if (var1 != null) { this.status_messages[var31] = var1; } else if (var31 == 0) { this.status_messages[var31] = this.urls[var31] == null ? "" : this.urls[var31].toString(); } else { this.status_messages[var31] = this.status_messages[var31 - 1]; } } } public void run() { String var1 = ((Applet)this).getParameter("CYCLES"); this.cycles = var1 != null ? this.field_0.getRandom(var1) : 0; byte var2; if (this.cycles < 1) { var2 = 0; this.cycles = 1; } else { var2 = 1; } for(int var3 = 0; var3 < this.cycles * this.frame_count; var3 += var2) { if (!this.field_6.checkID(this.field_1 + 1) && this.preload) { try { this.field_6.waitForID(this.field_1 + 1); } catch (Exception var10) { } } if (this.inapplet) { ((Applet)this).showStatus(this.status_messages[this.field_1]); } if (this.sound_activations[this.field_1].equals("auto") && this.sounds[this.field_1] != null) { this.sounds[this.field_1].play(); } String var4 = this.transition_types[this.field_1].startsWith("random") ? this.transition_list[(int)(Math.random() * (double)this.transition_list.length)] : this.transition_types[this.field_1]; this.prevfi = (this.field_1 - 1 + this.frame_count) % this.frame_count; this.field_2 = this.field_0.getRandom(this.transition_steps[this.field_1]); this.field_3 = this.field_0.getRandom(this.transition_rates[this.field_1]); this.field_4 = this.field_0.getRandom(this.x_pos[this.field_1]); this.field_5 = this.field_0.getRandom(this.y_pos[this.field_1]); this.pxp = this.field_0.getRandom(this.x_pos[this.prevfi]); this.pyp = this.field_0.getRandom(this.y_pos[this.prevfi]); if (var4.startsWith("overwrite")) { this.paintBackground(); this.bufferG.drawImage(this.images[this.field_1], this.field_4, this.field_5, this); this.paintForeground(); ((Component)this).repaint(); } else if (!var4.startsWith("shutter")) { if (var4.startsWith("shrink")) { int var16 = this.field_0.getRandom(this.field_0.pre(this.field_0.post(var4, "("), ")")); if (var16 == 1) { this.shrink((double)0.0F, (double)0.0F); } else if (var16 == 2) { this.shrink((double)0.5F, (double)0.0F); } else if (var16 == 3) { this.shrink((double)1.0F, (double)0.0F); } else if (var16 == 4) { this.shrink((double)1.0F, (double)0.5F); } else if (var16 == 5) { this.shrink((double)1.0F, (double)1.0F); } else if (var16 == 6) { this.shrink((double)0.5F, (double)1.0F); } else if (var16 == 7) { this.shrink((double)0.0F, (double)1.0F); } else if (var16 == 8) { this.shrink((double)0.0F, (double)0.5F); } else { this.shrink((double)0.5F, (double)0.5F); } } else if (var4.startsWith("expand")) { int var17 = this.field_0.getRandom(this.field_0.pre(this.field_0.post(var4, "("), ")")); if (var17 == 1) { this.expand((double)0.0F, (double)0.0F); } else if (var17 == 2) { this.expand((double)0.5F, (double)0.0F); } else if (var17 == 3) { this.expand((double)1.0F, (double)0.0F); } else if (var17 == 4) { this.expand((double)1.0F, (double)0.5F); } else if (var17 == 5) { this.expand((double)1.0F, (double)1.0F); } else if (var17 == 6) { this.expand((double)0.5F, (double)1.0F); } else if (var17 == 7) { this.expand((double)0.0F, (double)1.0F); } else if (var17 == 8) { this.expand((double)0.0F, (double)0.5F); } else { this.expand((double)0.5F, (double)0.5F); } } else if (var4.startsWith("slidein")) { int var18 = this.field_0.getRandom(this.field_0.pre(this.field_0.post(var4, "("), ")")); if (var18 == 1) { this.slideIn(-this.width, -this.height, 1, 1); } else if (var18 == 2) { this.slideIn(0, -this.height, 0, 1); } else if (var18 == 3) { this.slideIn(this.width, -this.height, -1, 1); } else if (var18 == 4) { this.slideIn(this.width, 0, -1, 0); } else if (var18 == 5) { this.slideIn(this.width, this.height, -1, -1); } else if (var18 == 6) { this.slideIn(0, this.height, 0, -1); } else if (var18 == 7) { this.slideIn(-this.width, this.height, 1, -1); } else { this.slideIn(-this.width, 0, 1, 0); } } else if (var4.startsWith("slideout")) { int var19 = this.field_0.getRandom(this.field_0.pre(this.field_0.post(var4, "("), ")")); if (var19 == 1) { this.slideOut(-1, -1); } else if (var19 == 2) { this.slideOut(0, -1); } else if (var19 == 3) { this.slideOut(1, -1); } else if (var19 == 4) { this.slideOut(1, 0); } else if (var19 == 5) { this.slideOut(1, 1); } else if (var19 == 6) { this.slideOut(0, 1); } else if (var19 == 7) { this.slideOut(-1, 1); } else { this.slideOut(-1, 0); } } else if (var4.startsWith("scroll")) { int var20 = this.field_0.getRandom(this.field_0.pre(this.field_0.post(var4, "("), ")")); if (var20 == 2) { this.scroll(0, 1); } else if (var20 == 4) { this.scroll(-1, 0); } else if (var20 == 6) { this.scroll(0, -1); } else { this.scroll(1, 0); } } else if (var4.startsWith("squish")) { int var21 = this.field_0.getRandom(this.field_0.pre(this.field_0.post(var4, "("), ")")); if (var21 == 2) { this.squish(0, 1); } if (var21 == 4) { this.squish(1, 0); } if (var21 == 8) { this.squish(-1, 0); } else { this.squish(0, -1); } } } else { int var5 = this.field_0.getRandom(this.field_0.pre(this.field_0.post(var4, "("), ")")); this.paintBackground(); this.bufferG.drawImage(this.images[this.prevfi], this.pxp, this.pyp, this); for(int var6 = 0; var6 < this.field_2; ++var6) { this.paintForeground(); this.bufferG.setColor(this.field_0.makeColor(this.fgcolors[this.field_1])); if (var5 != 1 && var5 != 2) { int var22 = this.width / 2 * (this.field_2 - var6) / this.field_2; int var24 = this.height / 2 * (this.field_2 - var6) / this.field_2; this.bufferG.fillRect(var22, var24, this.width - 2 * var22, this.height - 2 * var24); } else { int var7 = this.width / 2 * (var6 + 1) / this.field_2; int var8 = this.height / 2 * (var6 + 1) / this.field_2; this.bufferG.fillRect(0, 0, this.width, var8); this.bufferG.fillRect(0, this.height - var8, this.width, var8); this.bufferG.fillRect(0, 0, var7, this.height); this.bufferG.fillRect(this.width - var7, 0, var7, this.height); } try { Thread.sleep((long)this.field_3); } catch (Exception var15) { } ((Component)this).repaint(); } for(int var23 = 0; var23 < this.field_2; ++var23) { this.paintBackground(); this.bufferG.drawImage(this.images[this.field_1], this.field_4, this.field_5, this); this.paintForeground(); this.bufferG.setColor(this.field_0.makeColor(this.fgcolors[this.field_1])); if (var5 != 1 && var5 != 3) { int var26 = this.width / 2 * (var23 + 1) / this.field_2; int var27 = this.height / 2 * (var23 + 1) / this.field_2; this.bufferG.fillRect(var26, var27, this.width - 2 * var26, this.height - 2 * var27); } else { int var25 = this.width / 2 * (this.field_2 - var23) / this.field_2; int var9 = this.height / 2 * (this.field_2 - var23) / this.field_2; this.bufferG.fillRect(0, 0, this.width, var9); this.bufferG.fillRect(0, this.height - var9, this.width, var9); this.bufferG.fillRect(0, 0, var25, this.height); this.bufferG.fillRect(this.width - var25, 0, var25, this.height); } try { Thread.sleep((long)this.field_3); } catch (Exception var14) { } ((Component)this).repaint(); } this.paintBackground(); this.bufferG.drawImage(this.images[this.field_1], this.field_0.getRandom(this.x_pos[this.field_1]), this.field_0.getRandom(this.y_pos[this.field_1]), this); this.paintForeground(); try { Thread.sleep((long)this.field_3); } catch (Exception var13) { } ((Component)this).repaint(); } this.paintBackground(); this.bufferG.drawImage(this.images[this.field_1], this.field_0.getRandom(this.x_pos[this.field_1]), this.field_0.getRandom(this.y_pos[this.field_1]), this); this.paintForeground(); ((Component)this).repaint(); if (!this.pauses[this.field_1].startsWith("-")) { this.pauseloop = false; try { Thread.sleep((long)this.field_0.getRandom(this.pauses[this.field_1])); } catch (Exception var12) { } } else { this.pauseloop = true; while(this.pauseloop) { try { Thread.sleep(100L); } catch (Exception var11) { } } } this.field_1 = (this.field_1 + 1) % this.frame_count; } } public void shrink(double var1, double var3) { for(int var5 = 0; var5 < this.field_2; ++var5) { int var6 = this.width * (this.field_2 - var5) / this.field_2; int var7 = this.height * (this.field_2 - var5) / this.field_2; int var8 = (int)((double)this.pxp + var1 * (double)(this.width - var6)); int var9 = (int)((double)this.pyp + var3 * (double)(this.height - var7)); this.paintBackground(); this.bufferG.drawImage(this.images[this.field_1], this.field_4, this.field_5, this); this.bufferG.drawImage(this.images[this.prevfi], var8, var9, var6, var7, this); this.paintForeground(); try { Thread.sleep((long)this.field_3); } catch (Exception var10) { } ((Component)this).repaint(); } } public void expand(double var1, double var3) { for(int var5 = 0; var5 < this.field_2; ++var5) { int var6 = this.width * (var5 + 1) / this.field_2; int var7 = this.height * (var5 + 1) / this.field_2; int var8 = (int)((double)this.field_4 + var1 * (double)(this.width - var6)); int var9 = (int)((double)this.field_5 + var3 * (double)(this.height - var7)); this.paintBackground(); this.bufferG.drawImage(this.images[this.prevfi], this.pxp, this.pyp, this); this.bufferG.drawImage(this.images[this.field_1], var8, var9, var6, var7, this); this.paintForeground(); try { Thread.sleep((long)this.field_3); } catch (Exception var10) { } ((Component)this).repaint(); } } public void squish(int var1, int var2) { for(int var3 = 0; var3 < this.field_2; ++var3) { int var6; int var7; int var10; int var11; if (var1 == 0) { var6 = var10 = this.width; var7 = this.height * (this.field_2 - var3 - 1) / this.field_2; var11 = this.height - var7; } else { var7 = var11 = this.height; var6 = this.width * (this.field_2 - var3 - 1) / this.field_2; var10 = this.width - var6; } int var8 = var1 == -1 ? this.field_4 + this.width - var10 : 0; int var4 = var1 == 1 ? this.pxp + this.width - var6 : 0; int var9 = var2 == -1 ? this.field_5 + this.height - var11 : 0; int var5 = var2 == 1 ? this.pyp + this.height - var7 : 0; this.paintBackground(); this.bufferG.drawImage(this.images[this.prevfi], var4, var5, var6, var7, this); this.bufferG.drawImage(this.images[this.field_1], var8, var9, var10, var11, this); this.paintForeground(); try { Thread.sleep((long)this.field_3); } catch (Exception var12) { } ((Component)this).repaint(); } } public void scroll(int var1, int var2) { for(int var3 = 0; var3 < this.field_2; ++var3) { int var4 = this.field_4 + var1 * (this.width * (var3 + 1) / this.field_2 - this.width); int var5 = this.field_5 + var2 * (this.height * (var3 + 1) / this.field_2 - this.height); int var6 = this.pxp + var1 * this.width * (var3 + 1) / this.field_2; int var7 = this.pyp + var2 * this.height * (var3 + 1) / this.field_2; this.paintBackground(); this.bufferG.drawImage(this.images[this.prevfi], var6, var7, this); this.bufferG.drawImage(this.images[this.field_1], var4, var5, this); this.paintForeground(); try { Thread.sleep((long)this.field_3); } catch (Exception var8) { } ((Component)this).repaint(); } } public void slideIn(int var1, int var2, int var3, int var4) { for(int var5 = 0; var5 < this.field_2; ++var5) { int var6 = this.pxp + var1 + var3 * this.width * (var5 + 1) / this.field_2; int var7 = this.pyp + var2 + var4 * this.height * (var5 + 1) / this.field_2; this.paintBackground(); this.bufferG.drawImage(this.images[this.prevfi], this.field_4, this.field_5, this); this.bufferG.drawImage(this.images[this.field_1], var6, var7, this); this.paintForeground(); try { Thread.sleep((long)this.field_3); } catch (Exception var8) { } ((Component)this).repaint(); } } public void slideOut(int var1, int var2) { for(int var3 = 0; var3 < this.field_2; ++var3) { int var4 = this.pxp + var1 * this.width * (var3 + 1) / this.field_2; int var5 = this.pyp + var2 * this.height * (var3 + 1) / this.field_2; this.paintBackground(); this.bufferG.drawImage(this.images[this.field_1], this.field_4, this.field_5, this); this.bufferG.drawImage(this.images[this.prevfi], var4, var5, this); this.paintForeground(); try { Thread.sleep((long)this.field_3); } catch (Exception var6) { } ((Component)this).repaint(); } } public void paintBackground() { this.bufferG.setColor(this.field_0.makeColor(this.bgcolors[this.field_1])); this.bufferG.fillRect(0, 0, this.width, this.height); if (this.background != null) { this.bufferG.drawImage(this.background, 0, 0, this); } } public void paintForeground() { if (this.foreground != null) { this.bufferG.drawImage(this.foreground, 0, 0, this); } } public void paint(Graphics var1) { var1.drawImage(this.bufferI, 0, 0, this); } public void update(Graphics var1) { this.paint(var1); } public void start() { if (this.woohoo == null) { this.woohoo = new Thread(this); } if (this.bufferG == null) { this.bufferI = ((Component)this).createImage(this.width, this.height); this.bufferG = this.bufferI.getGraphics(); } if (this.field_0.paramCheck("COPYRIGHT", "Animate applet, Copyright 1997 Sun Microsystems, Inc., all rights reserved.") && this.field_0.paramCheck("DOCUMENTATION", "Documentation found at: http://www.xm.com/cafe/")) { this.woohoo.start(); } else { System.out.println("Animate: you need to use the COPYRIGHT/DOCUMENTATION parameters correctly!"); ((Applet)this).showStatus("Animate: you need to use the COPYRIGHT/DOCUMENTATION parameters correctly!"); } } public void stop() { this.inapplet = false; if (this.woohoo != null) { this.woohoo.stop(); this.woohoo = null; } } public void destroy() { if (this.bufferG != null) { this.bufferG.dispose(); } } public boolean mouseEnter(Event var1, int var2, int var3) { if (this.pauses[this.field_1].equals("-2")) { this.pauseloop = false; } this.inapplet = true; if (this.sound_activations[this.field_1].equals("enter") && this.sounds[this.field_1] != null) { this.sounds[this.field_1].play(); } ((Applet)this).showStatus(this.status_messages[this.field_1]); return true; } public boolean mouseExit(Event var1, int var2, int var3) { this.inapplet = false; ((Applet)this).showStatus(""); return true; } public boolean mouseDown(Event var1, int var2, int var3) { if (this.pauses[this.field_1].equals("-1")) { this.pauseloop = false; } try { ((Applet)this).getAppletContext().showDocument(this.urls[this.field_1], this.targets[this.field_1]); } catch (Exception var4) { } if (this.sound_activations[this.field_1].equals("click") && this.sounds[this.field_1] != null) { this.sounds[this.field_1].play(); } return true; } }