home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.image.ImageObserver;
- import java.awt.image.MemoryImageSource;
- import java.awt.image.PixelGrabber;
-
- public class FunScrollFade {
- static final int FRAMES = 7;
- static final int TOTAL_FRAMES = 8;
- static final int MULTIPLIER = 6102575;
- int[][] random;
- FunScroll applet;
- int pixels_per_frame;
- int pixels_per_image;
- int image_w;
- int image_h;
- int number_of_frames = 7;
- int frameIndex;
- Image[] images;
- int[] work_pixels;
- int[] from_pixels;
- int[] to_pixels;
-
- public FunScrollFade(FunScroll var1, int var2, int var3) {
- this.applet = var1;
- this.image_w = var2;
- this.image_h = var3;
- this.pixels_per_image = this.image_w * this.image_h;
- this.frameIndex = 0;
- this.initRandomArray();
- this.from_pixels = null;
- this.to_pixels = null;
- this.work_pixels = null;
- this.images = new Image[8];
- }
-
- public void initToImage(Image var1) {
- if (this.to_pixels == null) {
- this.to_pixels = new int[this.pixels_per_image];
- PixelGrabber var2 = new PixelGrabber(var1.getSource(), 0, 0, this.image_w, this.image_h, this.to_pixels, 0, this.image_w);
-
- try {
- var2.grabPixels();
- } catch (InterruptedException var3) {
- }
- }
- }
-
- public void initFromImage(Image var1) {
- if (this.from_pixels == null) {
- this.from_pixels = new int[this.pixels_per_image];
- PixelGrabber var2 = new PixelGrabber(var1.getSource(), 0, 0, this.image_w, this.image_h, this.from_pixels, 0, this.image_w);
-
- try {
- var2.grabPixels();
- } catch (InterruptedException var3) {
- return;
- }
-
- this.initWorkPixels();
- }
-
- }
-
- public Image getFromImage() {
- Image var1 = this.applet.createImage(new MemoryImageSource(this.image_w, this.image_h, this.from_pixels, 0, this.image_w));
- this.applet.prepareImage(var1, (ImageObserver)null);
- return var1;
- }
-
- public void resetFrameIndex() {
- this.frameIndex = 0;
- }
-
- public void drawFrame(Graphics var1) {
- int var2 = this.frameIndex;
- if (this.frameIndex > this.number_of_frames) {
- var2 = this.number_of_frames;
- }
-
- if (this.images[var2] == null) {
- this.images[var2] = this.createImage(var2);
- }
-
- if (this.images[var2] != null) {
- var1.drawImage(this.images[var2], 0, 0, (ImageObserver)null);
- }
-
- ++this.frameIndex;
- }
-
- public boolean done() {
- return this.frameIndex > this.number_of_frames;
- }
-
- public void initWorkPixels() {
- this.work_pixels = new int[this.pixels_per_image];
- System.arraycopy(this.from_pixels, 0, this.work_pixels, 0, this.pixels_per_image);
- }
-
- public Image createImage(int var1) {
- for(int var2 = 0; var2 < this.pixels_per_frame; ++var2) {
- this.work_pixels[this.random[var1][var2]] = this.to_pixels[this.random[var1][var2]];
- }
-
- Image var3 = this.applet.createImage(new MemoryImageSource(this.image_w, this.image_h, this.work_pixels, 0, this.image_w));
- this.applet.prepareImage(var3, (ImageObserver)null);
- return var3;
- }
-
- void initRandomArray() {
- this.pixels_per_frame = this.pixels_per_image / 8;
- this.random = new int[8][this.pixels_per_frame];
- int[] var1 = new int[8];
-
- for(int var2 = 0; var2 < 8; ++var2) {
- var1[var2] = 0;
- }
-
- int var4 = this.pixels_per_frame * 8;
- int var5 = (int)System.currentTimeMillis();
-
- int var6;
- for(var6 = 10; (this.pixels_per_frame % var6 > 0 || this.image_h % var6 == 0) && var6 > 1; --var6) {
- }
-
- int var7 = this.pixels_per_frame / var6;
- int var8 = var4 / var6;
-
- int var3;
- for(int var9 = 0; var9 < var7; this.random[var3][var1[var3]++] = var9++) {
- var5 *= 6102575;
- var3 = var5 >>> 29;
- }
-
- var5 += 20560;
-
- for(int var10 = var7; var10 < var8; this.random[var3][var1[var3]++] = var10++) {
- var5 *= 6102575;
- var3 = var5 >>> 29;
-
- while(var1[var3] >= var7) {
- ++var3;
- if (var3 >= 8) {
- var3 = 0;
- }
- }
- }
-
- for(int var11 = 0; var11 < 7; ++var11) {
- for(int var12 = var7; var12 < this.pixels_per_frame; var12 += var7) {
- for(int var13 = 0; var13 < var7; ++var13) {
- this.random[var11][var12 + var13] = this.random[var11][var13] + var12 * 8;
- }
- }
- }
-
- }
- }
-