import java.awt.*; import java.net.*; import java.applet.*; import java.io.*; public class OverlaySlide extends Applet implements Runnable { int xw = 0; Image logo, logo1, logo2; MediaTracker t; boolean s=true; int wid, speed, h, w; String p, overlay, img; public void init() { p = getParameter("wid"); if(p == null) { wid=0; } else{ wid = Integer.parseInt(p); } p = getParameter("speed"); if(p == null) { speed=15; } else{ speed = Integer.parseInt(p); } overlay = getParameter("overlay"); if(overlay == null) { stop(); return; } img = getParameter("img"); if(img == null) { stop(); return; } h = Integer.parseInt(getParameter("height")); w = Integer.parseInt(getParameter("width")); t = new MediaTracker(this); try { logo1 = getImage(new URL(getDocumentBase(), overlay)); logo2 = getImage(new URL(getDocumentBase(), img)); } catch (MalformedURLException e){ } t.addImage(logo1, 1); t.addImage(logo2, 1); logo = logo2; } public void update(Graphics g){ paint(g); } public void paint(Graphics g){ if((t.statusID(1, false) & MediaTracker.COMPLETE) == 0){ g.drawString("Loading Image...", 10,25); return; } if(s){ g.drawImage(logo2, 0,0, w, h,this); s=false; } if(wid >0){ g.clipRect(xw-25,0,25+wid, h); g.drawImage(logo2, 0,0, w,h,this); g.clipRect(xw,0,50+wid, 1000); g.drawImage(logo1, 0, 0, w,h,this); } else{ g.clipRect(0,0,xw, h); g.drawImage(logo1, 0,0, w,h,this); } } public void start() { (new Thread(this)).start(); } public void run() { try { t.waitForID(1); } catch (InterruptedException e) { } while(true){ xw+=5; if(xw > w+50){ xw=0; s=true; } repaint(); try { Thread.currentThread().sleep((int) (1000/speed)); } catch (InterruptedException e) { } } } public boolean handleEvent(Event evt){ s=true; return super.handleEvent(evt); } }