home *** CD-ROM | disk | FTP | other *** search
/ Internet 1996 World Exposition / park.org.s3.amazonaws.com.7z / park.org.s3.amazonaws.com / Japan / NTT / DM- / hotjava / classes / src / AnimationData.java < prev    next >
Encoding:
Java Source  |  2017-09-21  |  4.0 KB  |  200 lines

  1. import browser.*;
  2. import browser.audio.*;
  3. import awt.*;
  4. import net.www.html.*;
  5. import java.io.*;
  6. import net.www.*;
  7. import java.util.*;
  8.  
  9. // Animation Data Type
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. // AnimationData ID
  18.  
  19.  
  20. // Animation Depth for no image (i.e. sound only data)
  21.  
  22.  
  23. class AnimationData {
  24.  
  25. AnimationPlayer        parent;
  26. int        id;
  27.  
  28. // Image data
  29. int        type;
  30. int        depth;
  31. Image        images[];
  32.  
  33. // Audio data
  34. AudioData    sound = null;
  35. int        soundFrame = -1;    // frame number of starting sound
  36.  
  37. // Frame data
  38. int        frames[];        // index for images
  39. int        xpos[], ypos[];
  40. int        frameTime[];
  41.  
  42. boolean        started = false;
  43. int        firstStartBase = -1;
  44. int        firstStartParameter = -1;
  45. int        autoStartBase = -1;
  46. int        autoStartParameter = -1;
  47. int        curFrame = -1;
  48.  
  49. boolean        reverse = false;
  50.  
  51.  
  52. public AnimationData() { // dummy or sentinel
  53.     depth = -1000;
  54. }
  55.  
  56. public AnimationData(AnimationPlayer op, int myid, int typ, int d, 
  57.             String imgfile, int n, int fr[], int x[], int y[]) {
  58.     parent = op;
  59.     id = myid;
  60.     type = typ;
  61.     depth = d;
  62.     frames = fr;
  63.     xpos = x;
  64.     ypos = y;
  65.  
  66.     images = new Image[n+2];
  67.     if (imgfile != null) {
  68.     int i;
  69.     for (i=0; i <= n; i++) {
  70.         images[i] = parent.getImage(imgfile + i + ".gif");
  71.     }
  72.     images[n+1] = parent.getImage(imgfile + "99.gif");
  73.     }
  74. }
  75.  
  76. public void setFrameTime(int ftime[], int fb, int fp, int ab, int ap) {
  77.     frameTime = ftime;
  78.     firstStartBase = fb;
  79.     firstStartParameter = fp;
  80.     autoStartBase = ab;
  81.     autoStartParameter = ap;
  82. }
  83.  
  84. public void setFrameTime(int ftime, int fb, int fp, int ab, int ap) {
  85.     firstStartBase = fb;
  86.     firstStartParameter = fp;
  87.     autoStartBase = ab;
  88.     autoStartParameter = ap;
  89.  
  90.     setFrameTime(ftime);
  91. }
  92.  
  93. public void setFrameTime(int ftime) {
  94.     frameTime = new int[frames.length];
  95.     int i;
  96.     for (i=0; i < frameTime.length; i++) {
  97.     frameTime[i] = ftime;
  98.     }
  99. }
  100.  
  101. public AnimationData(AnimationPlayer ap, int myid, int typ, int d,
  102.         int imgcount,int fr[], int x[], int y[]) {
  103.     parent = ap;
  104.     id = myid;
  105.     type = typ;
  106.     depth = d;
  107.     images = new Image[imgcount+2];
  108.     frames = fr;
  109.     xpos = x;
  110.     ypos = y;
  111. }
  112.  
  113. public void setImages(String imgfile, int from, int to, int idx) {
  114.     int i;
  115.     for (i=from; i <= to; i++, idx++) {
  116.     images[idx] = parent.getImage(imgfile + i + ".gif");
  117.     }
  118. }
  119.  
  120. public void setSound(String aufile, int frame) {
  121.     sound = parent.getAudioData(aufile);
  122.     soundFrame = frame;
  123. }
  124.  
  125. public void        setCurFrame(int f)    {curFrame = f;}
  126. public void        Reverse()    {reverse = !reverse;}
  127.  
  128. public int        getID()        {return id;}
  129. public int        getType()    {return type;}
  130. public int        getDepth()    {return depth;}
  131. public int        getCurFrame()    {return curFrame;}
  132. public int        getLastFrame()    {return frames.length-1;}
  133. public boolean        getReverse()    {return reverse;}
  134. public int        x()         {return xpos[curFrame];}
  135. public int        y()         {return ypos[curFrame];}
  136. public boolean         isSoundFrame()    {return curFrame != -1 && 
  137.                         curFrame == soundFrame;}
  138. public Image getCurrentImage() {
  139.     if (curFrame == -1 || frames[curFrame] == -1) {
  140.     return null;
  141.     } else {
  142.     return images[frames[curFrame]];
  143.     }
  144. }
  145.  
  146. public int getFrameTime() {
  147.     if (curFrame == 0) {
  148.     int base = started ? autoStartBase : firstStartBase;
  149.     int param = started ? autoStartParameter : firstStartParameter;
  150.     started = true;
  151.     if (base > 0) {
  152.         return base+(int)(Math.random()*param+0.5);
  153.     } else {
  154.         return frameTime[curFrame];
  155.     }
  156.     } else if (curFrame == -1 || frames[curFrame] == -1) {
  157.     return -1;
  158.     } else {
  159.     return frameTime[curFrame];
  160.     }
  161. }
  162.  
  163. public void nextFrame() {
  164.     if (type == 0) {
  165.     curFrame = 0;
  166.     return;
  167.     }
  168.     if (type == 4) {
  169.     if (reverse) {
  170.         --curFrame;
  171.     } else {
  172.         ++curFrame;
  173.     }
  174.     return;
  175.     }
  176.  
  177.     curFrame++;
  178.     if (type == 1) {
  179.     if (curFrame >= getLastFrame()) {
  180.         curFrame = 0;
  181.     }
  182.     } else if (type == 2) {            // click
  183.     if (curFrame >= getLastFrame()) {
  184.         curFrame = 0;
  185.     }
  186.     } else if (type == 3) {
  187.     if (curFrame >= getLastFrame()) {
  188.         curFrame = getLastFrame();
  189.     }
  190.     }
  191. }
  192.  
  193. public void playSound() {
  194.     if (sound != null) {
  195.     AudioPlayer.player.start(new AudioDataStream(sound));
  196.     }
  197. }
  198.  
  199. }
  200.