|  | Att fundera på...
  
Övningar
Ändra bredd till 400 och höjd till 180 på appletten. Dett sker i HTML koden
 
Rita eller stjäl fyra bilder som du skall kalla bild0.gif ... bild3.gif eller bild0.jpg ... bild3.jpgSätt dessa i images katalogen. Ändra sedan på Applet taggen i html sidan så att du visar dessa bilder istället för de tidigare
 
 
Fördubbla bläddringshastigheten på animationen.
 
Prova ändra i java koden så att Image.SCALE_SMOOTH ändras till Image.SCALE_FAST. Märker du någon skillnad?
 
Sätt in följande rad direkt i början av paint funktionen:g.drawString( "Loading pictures. Please Wait...", 10, 10);
 Varför kan detta vara en god idé?
 
 
Se till att vi har en vit bakgrund på appletten innan vi hunnit ladda bilderna
 
 Lite mer avancerat... (Överkurs - men kanske intressant)
 Ändra på raden:
 
 
            repaint( );
Till:    
            repaint(10,10, getSize().width-20, getSize().height-20);
Samt ändra om paint funktionen till följande:
    public void paint(Graphics g) 
    {
        if ( ( tracker.statusAll(false) & MediaTracker.ERRORED ) != 0 ) 
        {
            g.setColor( Color.red );
            g.fillRect( 0, 0, getSize().width, getSize().height );
            return;
        }
        // -----------------------------------------------------
        // skall vi rita om ALLT?
        if (g.getClipBounds().height == getSize().height)
            g.drawImage( bg, 0, 0, this );
        // -----------------------------------------------------        
        if ( tracker.statusID(1, false) == MediaTracker.COMPLETE ) 
        {
            // -----------------------------------------------------
            // Behöver inte rita om HELA appleten - bara den rektangel där
            // animationsbilden finns
            g.setClip( 10, 10, getSize().width-20, getSize().height-20 );
            // får inte byta bild (index) innan denna loop är klar!
            synchronized ( this )
            {    
               for ( int j = - getSize().width; j <= 10; j++ ) 
               {   
                  // en liten paus på 10 millisekunder
                  try
                  {
                      Thread.sleep( 10 );
                  }
                  catch (InterruptedException e) 
                  {
                      break;
                  }
                  // rita in bilden - observera j variabelns användning
                  g.drawImage(anim[index], j, 10, this);
              }
            }
            // -----------------------------------------------------
        }
    }
}
Vad gör programmet nu? Försök kontrollera från hjälpen vad de nya "orden" i programmet kan ha för betydelse. Prova även att ändra på loopen för att få bilderna att byta på lite olika sätt Klicka här för att få se en variant på detta tema |  |