当前页面: 开发资料首页 → Java 专题 → java动画——基本动画 
java动画——基本动画 
摘要: java动画——基本动画  
java动画——基本动画   
// 程序:基本动画 
// 范例文件:FirstAnimation.java   
import java.awt.*; 
import java.net.*; 
import java.applet.*;   
public class FirstAnimation extends Applet 
{ 
   URL          ErrorHTML;             //错误页面的URL 
   int          currentImage;          //目前图像 
   Image        Animation[];           //动画图像 
   MediaTracker MT;                    //图像追踪器   
   public void init() 
   { 
      currentImage = 0;                //指定目前图像为第一张图像 
      Animation    = new Image[8];     //与使用八张动画图像 
      MT           = new MediaTracker(this);   
      for(int i=0;i<8;i++)             //注意此循环中的程序代码 
      { 
         Animation[i] 
         = getImage(getDocumentBase(),"Images/Freedom" + (i+1) + ".gif");   
         MT.addImage(Animation[i],0); 
      }   
      try 
      { 
         showStatus("图像加载中...");  //在状态列显示信息 
         MT.waitForAll();              //等待所有图像下载 
      } 
      catch(InterruptedException E)    //若捕捉到例外 
      { 
         try                           //建立错误页面的URL 
         { 
            ErrorHTML = new URL(getCodeBase().toString() + "ErrorHTML.html"); 
         } 
         catch(MalformedURLException ME){ }   
         getAppletContext().showDocument(ErrorHTML);  //转移页面 
      } 
   }   
   public void paint(Graphics g) 
   { 
      //绘制目前图像 
      g.drawImage(Animation[currentImage],50,10,250,250,this);   
      try 
      { 
         Thread.sleep(125);           //暂停程序执行125毫秒 
      } 
      catch(InterruptedException E) 
      { 
         try                           //建立错误页面的URL 
         { 
            ErrorHTML = new URL(getCodeBase().toString() + "ErrorHTML.html"); 
         } 
         catch(MalformedURLException ME){ }   
         getAppletContext().showDocument(ErrorHTML);  //转移页面 
      }       
      if(currentImage == 7)            //如果已经播放到最后一张图像 
         currentImage = 0;             //指定目前图像为第一张图像 
      else 
         currentImage = currentImage + 1;  //指定图像为下一张图像   
      repaint();                       //重新绘制图像 
   } 
}   
在这个代码中,绘制动画,除了前面讲到的加在图像,跟踪图像等方法外,关键的在于:我们使用高速显示图片,这样就可以形成一幅连续的动画。 
可以看到我们的代码都写到了paint()方法中。并在其中进行加在图片,得到下一幅图片,并更新的一系列步骤。 
但是,可以看到这样显示的动画闪烁很厉害。我们在下一篇文章中看到更好的方法。