animationstrip.java

来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 127 行

JAVA
127
字号
     import java.awt.*; 
     import java.awt.image.*;
     import java.util.*;

     // 定义一个动态链表,容纳用于Animator对象显示动画用的图像帧    
     public class AnimationStrip extends Object 
     {
          // 观察外部对象的绘制
          public static ImageObserver observer;

          // 图像帧链表,以及链表的大小
          protected LinkedList frames;
          protected int        numFrames;
 
          // 负责放映帧的Animator
          protected Animator animator;

          // 创建一个新的AnimationStrip对象
          public AnimationStrip()
          {
               frames    = null;
               numFrames = 0;
               animator  = null;
          }

          public final void setAnimator(Animator anim)
          {
               animator = anim;
               animator.setFrames(frames);
          }

          // 把图像帧添加到链表中
          public void addFrame(Image i)
          {
               if(frames == null)
               {
                    frames = new LinkedList();
                    numFrames = 0;
               }
 
               frames.add(i);
               numFrames++;
          }

          // 返回Animator的当前帧
          public Image getCurrFrame()
          {
               if(frames != null)
               {
                    return animator.getCurrFrame();
               }
               return null;
          }

          // 让Animator产生下一帧动画
          public void animate()
          {
               if(animator != null)
               {
                    animator.nextFrame();
               }
          }

          // 返回Animator的下一帧动画
          public Image getNextFrame()
          {
               if(animator != null)
               {
                    animator.nextFrame();
                    return animator.getCurrFrame();
               }
 
               return null;
          }

          // 返回第一帧动画
          public Image getFirstFrame()
          {
               if(frames != null)
               {
                    return (Image)frames.getFirst();
               }

               return null;               
          }    

          // 返回最后一帧动画 
          public Image getLastFrame()
          {
               if(frames != null)
               {
                    return (Image)frames.getLast();
               }

               return null;               
          }    

          // 重新设置Animator内部的动画序列
          public void reset()
          {
               if(animator != null)
               {
                    animator.reset();
               }
          }

          // 返回动画帧的宽度
          public int getFrameWidth()
          {
               if(frames != null && !frames.isEmpty())
               {
                    return getFirstFrame().getWidth(observer);
               }
               return 0;
          }

          // 返回动画帧的高度
          public int getFrameHeight()
          {
               if(frames != null && !frames.isEmpty())
               {
                    return getFirstFrame().getHeight(observer);
               }
               return 0;
          }

     }    // AnimationStrip  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?