首页 > 代码库 > 简易动画制作
简易动画制作
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 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。