在AWT中,不提供直接的动画支持-—例如它不提供动画软件包。但是,AWT确实提供了实现动画效果的所有基本结构。动画软件包,基于第“双缓冲技术”实现。
1、构成
animation软件包主要包含四个组成部分:
- Playfield—–是DoubleBufferedContainer类的扩展,动画效果发生在该类中。
- Sprite ——是一个轻量构件,它可以在 Playfield中执行动画效果。
- Sequence ——一保持一系列图像。
- CollisionDetector ——检测子图形之间的冲突以及子图形与 Playfield边界之间的冲突。
animation软件包的原理很简单:子图形在演示区域中实现动画效果,而且还可以检测子图形与其他子图形之间的冲突以及子图形与演示区域边界之间的冲突。用户可以设置子图形循环其图像序列的速度以及子图形的移动速度。
本章将首先讨论子图形与图像序列的实现,然后描述演示区域及冲突检测的实现,最后通过动画applet 的实现,介绍这个动画软件包的使用方法。
2、序列与子图形
子图形必须能够实现以下两个主要功能:
- 在图像序列之间循环。
- 在双缓冲容器中移动。
这两个功能的发生速度都可以进行设置。Sprite负责其自身的移动操作与移动计时;但是,将循环图像序列中的当前对象转换为另外一个对象的功能则是由它授权Sequence对象实现的。