所谓动画,就是通过连续播放一系列画面,给视觉造成连续变化的图画,这是动画最基本的原理。Java语言中的动画技术,即在屏幕上显示一系列连续动画的第一帧图像,然后每隔很短的时间再显示下一帧图像,如此往复,利用人眼视觉的暂停现象,使人感觉画面上的物体在运动。
在Java中可以确定制作动画的基本方案。在Applet开始运行之后,每隔一段时间调用一次repaint()方法重画一帧。但如果这样的话,又会存在其他问题,如用户离开网页后,嵌入的Applet会继续运行,占用CPU时间。出于对网络高效使用的目的,可以采用多线程来实现动画。
在Java中实现多线程有两种方法:一种是继承Thread类,另一种是实现Runnable接口。对于Applet小程序,一般是通过实现Runnable接口的方式。实现动画文字与实现动画的方法是一样的,可以通过Runnable接口来实现多线程绘出动画文字,使文字像打字一样一个个跳出来,然后全部隐去,再重复显示文字,实现类似打字的效果。
【例11.9】 动画文字。
在成功编译该动画程序后,在IE浏览器中显示的文字是逐字跳出来的,然后再全部消隐,重复显示文字,如图11.11所示是程序运行时的两个状态。(www.daowen.com)
图11.11 文字动画
在[例11.9]中,先声明了一个Thread类型的对象runThread,用来存放新的线程对象,再覆盖start()方法,生成一个新的线程并启动该线程。由于实现Runnable接口的正是JumpText类本身,所以参数target设置为this。生成Thread对象后,就可以直接调用start()方法,启动该线程。这样程序中就有了两个线程,一个运行原来的Applet本身的代码,一个通过接口中唯一定义的方法run()运行另一线程的工作。
为了不占用CPU,应该在Applet被挂起时,停止这一线程的运行,所以还要覆盖stop()方法。将Thread对象设置为null,挂起时让系统把这个无用的Thread对象当作垃圾收集掉,释放内存。当用户再次进入页面时,Applet又会重新调用start()方法生成新的线程并启动动画。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。