荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: eb (恶霸小熊), 信区: Program
标 题: 用Visual J++实现文本动画技术
发信站: BBS 荔园晨风站 (Sat Jun 27 13:31:19 1998), 转信
用Visual J++实现文本动画技术
刘波滔
随着Internet的日益普及,Web页的设计逐渐成为一门艺术。那么,什么样的Web页才能
够让人感到生动有趣呢?除了内容本身外,动画也是一个重要的因素。好的动画往往会起到
画龙点睛的作用。在这里,我们用Visual
J++创建了一个Text类,用来实现文本的动画技术。要显示的文本从HTML中获得。
源程序如下:
import java.applet.*;
import java.awt.*;
public class Text extends Applet implements Runnable
//扩展Applet,用Runnable接口支持Applet
{
int x; //显示文本的左上角横坐标
int y; //显示文本的左上角纵坐标
int Width;
private String m_message1 = "";
private String m_message2="";
private String m_font = "";
private int m_size = 0;
private final String PARAM_message1 = "message1";
private final String PARAM_message2 = "message2";
private final String PARAM_font = "font";
private final String PARAM_size = "size";
Thread Activate_Text=null;
void begining()
{
Width=size().width; //获得Applet的宽度
y=size().height/3; //将文本置于Applet高度的1/3处
if (x>Width)
x=Width;
}
public void run()
{
while (true) //Applet终止时停止
{
repaint();
x+=10;
if(x>Width)
x=-m_size*m_message1.length();
//因为x是文本左上角横坐标,因而将其起始位置赋一恰当的负值,使文本能从
Applet边界有顺序地逐渐滑出,而这一负值正是字符串点阵宽度的相反数,字符串点阵宽度
用字符串长度乘以字号组成
try
{
Thread.sleep(150);
}
catch(InterruptedException e) //捕捉异常,但不作任何处理
{}
}
}
public void init()
{
begining();
String param;
param = getParameter(PARAM_message1);//从HTML文本中获得参数message1
if (param != null)
m_message1 = param;
param = getParameter(PARAM_message2);//从HTML文本中获得参数message2
if (param != null)
m_message2 = param;
param = getParameter(PARAM_font);//从HTML文本中获得参数font
if (param != null)
m_font = param;
param = getParameter(PARAM_size);//从HTML文本中获得参数size
if (param != null)
m_size = Integer.parseInt(param);
//因为从HTML中得到的参数均为String型,所以将其转换为Int型
}
public void paint(Graphics g)
{
setBackground(Color.cyan);//设置Applet的背景颜色为cyan
begining();
Font FontToDraw=new Font(m_font,Font.ITALIC+Font.BOLD,m_size);
g.setFont(FontToDraw);
g.setColor(Color.pink); //设置文本颜色为pink
g.drawString(m_message1,x,y+5);
g.drawString(m_message2,size().width-x-m_size*m_message2.length(),y*2+10);
}
public void start()
{
Activate_Text=new Thread(this);//创建Activate_Text线程
Activate_Text.start();//启动Activate_Text线程
}
}
欲运行这个Applet,还需要在你的HTML文档中加入Applet标记,它可能像下面这个样子
:
<APPLET CODE=Text.class ID=Text WIDTH=400 HEIGHT=40 >
<PARAM NAME=message1 VALUE="-ABCDEFG-">
<PARAM NAME=message2 VALUE="-HIJKLMN-">
<PARAM NAME=font VALUE="Courier">
<PARAM NAME=size VALUE=18>
</APPLET>
以上实现了简单的文本动画技术,但Applet的背景是直接用Cyan填充的,有兴趣的读者
还可以用图像填充背景,以便制作出具有专业水准的Web页。
(四川省成都市电子科技大学97S1班 刘波涛 610054)
--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.168]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店