荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: 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软件 网络书店