/** * Copyright (c): Uwe Schmidt, FH Wedel * * You may study, modify and distribute this source code * FOR NON-COMMERCIAL PURPOSES ONLY. * This copyright message has to remain unchanged. * * Note that this document is provided 'as is', * WITHOUT WARRANTY of any kind either expressed or implied. */ import java.applet.Applet; import java.awt.*; //-------------------- public class MediaTrackerAnimation extends ImageAnimation { MediaTracker tracker; //-------------------- public void init() { super.init(); // die Bilder in einem // MediaTracker registrieren tracker = new MediaTracker(this); for (int i = 0; i < images.length; ++i) { tracker.addImage(images[i],i); } } //-------------------- public void run() { while (Thread.currentThread() == animatorThread) { currImage += direction; if (currImage == images.length || currImage == -1) { direction = -direction; currImage += 2 * direction; } //-------------------- // mit dem Zeichnen warten bis // das Bild geladen ist if ( ! tracker.checkID(currImage) ) { try { showStatus("wait for loading image" + currImage); tracker.waitForID(currImage); } catch (InterruptedException e) { showStatus("MediaTracker error: " + e); } } //-------------------- repaint(); sleepAWhile(); } } } //--------------------