基本技术:
在java中实现动画有很多种办法,但它们实现的基本原理是一样的,即在屏幕上画出一系列的帧来造成运动的感觉。
我们先构造一个程序的框架,再慢慢扩展,使之功能比较齐备。
使用线程:
为了每秒中多次更新屏幕,必须创建一个线程来实现动画的循环,这个循环要跟踪当前帧并响应周期性的屏幕更新要求。实现线程的方法有两种,你可以创建一个类thread的派生类,或附和在一个runnable的界面上。
一个容易犯的错误是将动画循环放在paint()中,这样占据了主awt线程,而主线程将负责所有的绘图和事件处理。
一个框架applet如下:
| public class animator1 extends java.applet.applet implements runnable { int frame; int delay; thread animator; public void init() { string str = getparameter("fps"); int fps = (str != null) ? integer.parseint(str) : 10; delay = (fps > 0) ? (1000 / fps) : 100; } public vois start() { animator = new thread(this); animator.start(); } public void run() { while (thread.currentthread() == animator) { repaint(); try { thread.sleep(delay); } catch (interruptedexception e) { break; } frame++; } } public void stop() { animator = null; } } |
| <applet code=animator1.class width=200 height=200> <param name=fps value=200> </applet> |
| public void run() { long tm = system.currenttimemillis(); while (thread.currentthread() == animator) { repaint(); try { tm += delay; thread.sleep(math.max(0,tm - system.currenttimemillis())); } catch (interruptedexception e) { break; } frame++; } } |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器