animationstrip.java
来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 130 行
JAVA
130 行
package magic.graphics;
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 + -
显示快捷键?