📄 6.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0062)http://210.34.4.20/library/seminar/teach_htm_java/cap6-3-1.htm -->
<HTML><HEAD><TITLE>6.</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb_2312-80">
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<P><A name=cap6.3.1></A><FONT color=#008000 size=5>6.3 动画</FONT></P>
<P>相 信 许 多 人 在 Internet 上, 都 建 了自 己 心 爱 的 起 始 页, 作 为 网 络上 自 我 宣 传 的 文 档, 为 什 么
不装 饰 地 华 丽 些 呢? 这 一 节 中 所要 介 绍 的 实 例 就 是 一 个 动 画 的小 应 用 程 序。</P>
<P>动 画 处 理 的 主 要 过 程:<BR>1、 读 入 图 片<BR>2、 显 示</P>
<P>是 不 是 很 简 单? 让 我 们 来 看一 看。</P>
<DIV align=left>
<TABLE border=2>
<TBODY>
<TR>
<TD><PRE>import java.awt.*;
import java.applet.*;
public class TestAnim extends Applet
implements Runnable
{
Image iImages[];
Thread animThread;
int iFrame;
int iDelay;
public void init() {
int i;
String fps;
iImages = new <A href="http://210.34.4.20/library/seminar/teach_htm_java/cap6-3-1.htm#foot1"><STRONG>Image</STRONG></A>[6];
iFrame=0;
animThread=null;
for (i=0;i<iImages.length;i++)
iImages[i]=<A href="http://210.34.4.20/library/seminar/teach_htm_java/cap6-3-1.htm#foot1"><STRONG>getImage</STRONG></A>(<U>getDocumentBase</U>()
,"Images/Rolm000"+i+".gif");
fps=getParameter("FramePerSecond");
if (fps==null)
fps="10";
iDelay=1000/Integer.parseInt(fps);
}
</PRE></TD>
<TD>读 入 参 数 及 <A
href="http://210.34.4.20/library/seminar/teach_htm_java/cap6-3-1.htm#foot1">图
片</A>。</TD></TR>
<TR>
<TD><PRE> public void start() {
if (animThread == null) {
animThread = new Thread(this);
animThread.start();
}
}
public void stop() {
if (animThread != null) {
animThread.stop();
animThread = null;
}
}
public void run() {
while (true) {
iFrame++;
iFrame%=(iImages.length);
repaint();
try {
Thread.sleep(iDelay);
}
catch (InterruptedException e) {
}
}
}</PRE></TD>
<TD>启 动 多 线 程。</TD></TR>
<TR>
<TD><PRE> public void <A href="http://210.34.4.20/library/seminar/teach_htm_java/cap6-3-1.htm#foot2"><STRONG>update</STRONG></A>(Graphics g)
{
g.<A href="http://210.34.4.20/library/seminar/teach_htm_java/cap6-3-1.htm#foot2"><STRONG>drawImage</STRONG></A>(iImages[iFrame],0,0,this);
}
}</PRE></TD>
<TD><A
href="http://210.34.4.20/library/seminar/teach_htm_java/cap6-3-1.htm#foot2">显
示</A>。</TD></TR></TBODY></TABLE></DIV>
<P><A
href="http://210.34.4.20/library/seminar/teach_htm_java/Examples/TestAnim.Htm"
target=JavaExam><FONT size=4><EM><STRONG>送 至 实 验 板 </STRONG></EM></FONT></A></P>
<P><A name=foot1></A>1、 读 入 图 片</P>
<P>一 是 Image 类, 二 是 getImage 方 法。 <FONT
color=#ff0080><STRONG>Image</STRONG></FONT> 类 是 Java 中处 理 图 片 的 类; 而 <FONT
color=#ff0080><STRONG>getImage</STRONG></FONT> 方 法 负 责 装 入 图 片。<FONT
color=#ff0080>getCodeBase</FONT> 方 法 返 回 Java 类 文 件 所 在 的 URL -- 简 单 说 就 是 网 上 地
址。 getImage 的 两 个 参 数 合 在 一 起 就 是需 要 的 图 片 文 件 的 名 字。</P>
<P align=right><A
href="http://210.34.4.20/library/seminar/teach_htm_java/cap6-3-1.htm#cap6.3.1">回
到 程 序</A></P>
<P><A name=foot2></A>2、 显 示</P>
<P>Graphics 类 的 <FONT color=#ff0080><STRONG>drawImage</STRONG></FONT> 方 法 可 以 在
Applet 上 画 出 指 定 的图 片。</P>
<P>这 里 重 载 update 方 法 而 不 是 paint 方法 是 因 为 paint 方 法 是 由 <FONT
color=#ff0080><STRONG>update</STRONG></FONT> 方 法 调用 的, 而 缺 省 的 update 方 法 在 调 用
paint 前 会 清 屏, 直 接 重 载 paint 方 法会 在 每 次 画 图 片 之 前 都 先 擦 除屏 幕, 会 造 成 闪 烁。 您 可 以
自己 试 试。</P>
<P><A
href="http://210.34.4.20/library/seminar/teach_htm_java/java.htm#HP"><EM><STRONG>[</STRONG></EM></A><A
href="http://210.34.4.20/library/seminar/teach_htm_java/java.htm#cap_6"><EM><STRONG>返
回 本 章 目 录 |</STRONG></EM></A><A
href="http://210.34.4.20/library/seminar/teach_htm_java/cap6-3-1.htm#cap6.3.1"><EM><STRONG>
TOP ]</STRONG></EM></A></P>
<P><A
href="http://210.34.4.20/library/seminar/teach_htm_java/cap6-4.htm"><EM><STRONG>[下
一 章 节 ]</STRONG></EM></A></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -