/** ---------------------------- * Speelt de plaatjes T1.gif, T2.dif, ..., TN.gif af naast Duke. * * RK 2000-03-02 * ---------------------------- */ import java.applet.*; import java.awt.*; import java.awt.event.*; import java.util.Vector; import java.io.*; public class Animatie extends Applet implements Runnable, ActionListener { private int nimg, interval, pause; private String nimgName = "nimg"; private String intervalName = "interval"; private String pauseName = "pause"; private Image duke; private Image huidigePlaatje; private Vector plaatjes = new Vector(); private Thread filmpje; private Status mode = new Status(); private int inr = 0; public void init() { // Verzamel parameters. try { nimg = Integer.parseInt( getParameter(nimgName) ); } catch (NumberFormatException e) { System.out.println( "Invalid parameter "+ nimgName + ": " + getParameter(nimgName) ); } try { interval = Integer.parseInt( getParameter(intervalName) ); } catch (NumberFormatException e) { System.out.println( "Invalid parameter "+ intervalName + ": " + getParameter(intervalName) ); } try { pause = Integer.parseInt( getParameter(pauseName) ); } catch (NumberFormatException e) { System.out.println( "Invalid parameter "+ pauseName + ": " + getParameter(pauseName) ); } System.out.println( "params: "+ nimg + " " + interval + " " + pause ); //vvv // Verzamel de plaatjes. duke = getImage( getCodeBase(), "duke.gif" ); for (int i=0; i=plaatjes.size() ) inr = 0; huidigePlaatje = (Image)plaatjes.elementAt(inr); repaint(); Thread.sleep(interval); inr++; } if ( mode.getStatus() ) { if ( inr==plaatjes.size() ) Thread.sleep(pause); } } Thread.sleep(interval); // Zorg dat die omvattende while loop niet helemaal niets te doen heeft, // want anders slaat hij op hol en hangt de boel door performancegebrek. } } catch (InterruptedException e) {} } } public void paint( Graphics g ) { g.drawString( "Hallo Wereld! " + inr + " " + mode.getStatus(), 10, 20 ); g.drawImage( duke, 40, 70, this ); g.drawImage( huidigePlaatje, 110, 40, this ); } public void actionPerformed( ActionEvent e ) { if ( mode.getStatus() ) { mode.setStatus( false ); repaint(); } else { mode.setStatus( true ); repaint(); } } public void stop() { filmpje = null; } }