首页 > 代码库 > 简易动画制作

简易动画制作

 1 import java.awt.*; 2 import java.awt.event.*; 3 import java.applet.*; 4 public  class ShowAnimation extends Applet implements Runnable{ 5     Thread duke; 6     Image images[]=new Image[4], image; 7     int index, delay; 8     boolean flag; 9     public void init(){10        index=0;11        duke=new Thread(this);12        delay=Integer.parseInt(getParameter("delay"));//从HTML代码中<param>中获取延迟时间13        for(int i=1; i<=4; ++i){14            images[i-1]=getImage(getCodeBase(), "zjy" + i + ".jpg");15        image=images[index];16        String s=i+"zjy"+1;17        System.out.println(s);18        }19        //还有注意:String s="zjy" + i + 1;//因为"zjy"+i得到的是一个字符串,然后第二个‘+‘号在这里变成了连接符,并不是算出i+1的整数值20        //String s=i+1+"zjy";//这时候第一个‘+‘就是计算两个整数值相加的,然后第二个‘+‘是连接符21        addMouseListener(new MouseAdapter(){22           public void mousePressed(MouseEvent e){23              if(duke==null)24                 start();25              else26          stop();27           }28        });29     }30     public void start(){31         flag=true;//表示动画开始播放32         duke=new Thread(this);33         //start方法把嵌入在线程中的虚拟CPU置为可运行状态,意味着它可以被调度运行,但并不意味着线程会立即运行34         duke.start();35         showStatus("Click to stop!");36     }37     public void stop(){38         flag=false;39         duke=null;40         showStatus("Click to start!");41     }42     public void paint(Graphics g){43        g.drawImage(image, 0, 0, 200, 300, this);44     }45 46     public void run(){47        while(flag){//flag为false后线程将完成运行并结束,将不能再运行!所以一个线程不能多次调用start()方法!48           repaint();49           try{50            Thread.sleep(delay);51          }catch(InterruptedException e){52          53           }54           image=images[(++index)%4];55        }56     }57 }