Hem E-böcker Specialeffekter och spelutveckling i Java Andra exempel med showStatus()

Specialeffekter och spelutveckling i Java(TM) - Andra exempel med showStatus()

av Anibal Wainstein

3.1 Andra exempel med showStatus() 

Statusfönstereffekter används ofta idag bland web designers. Tack vare att vi nu förstår hur trådar fungerar så kan vi nu göra lite statusfönsteranimeringar. 

3.1.1 Din första scroller (statusscroller) 

Jag kommer ihåg att den första appleten jag gav mig ut för att programmera var en applet som hette URLScroll. Det var en av de vanligaste effekterna på den tiden, och de brukade helt enkelt vara ett textmeddelande som flyttade sig från höger till vänster. Vi gick i avsnitt 1.4.1 igenom hur man kan få en delsträng ur en större sträng. 
Börja med att ladda in den gamla tradtest.java filen och spara en kopia under ett annat namn (t.ex. statusscroller). Nu lägger vi till en init() metod där själva meddelandet kommer att initieras: 
 

public String meddelande;

public void init()
{
    meddelande="                              ";
    meddelande+="                              ";
    meddelande+="                              ";
    meddelande+="                              ";
    meddelande+="Grundkurs i specialeffekts- och ";
    meddelande+="spelprogrammering i Java(TM)";
}
Först så deklarerar vi en global variabel som heter "meddelande". Denna kommer att innehålla själva meddelandet som vi kommer att skriva ut. Vi börjar med att initiera variabeln med en blank sträng och sedan med att lägga in fler blanka rader. Meddelandet läggs in efter dessa rader. Blir du förvirrad av formen som jag skapar meddelandet på så tänk på att 
meddelande="meddelande 1 ";
meddelande+="meddelande 2";
är samma sak som 
meddelande="meddelande 1 " + "meddelande 2";
Idén med vår scroller är att visa kortare och kortare delar av strängen på statusfönstret tills det inte finns någonting kvar att visa. Skriv om run() metoden i den gamla appleten till följande: 
public void run()
{
    while (true)
    {
        int L=meddelande.length();
        for (int i=0; i<L; i++)
        {
            showStatus(meddelande.substring(i,L));
            try {Thread.sleep(100);}
            catch(InterruptedException e) {}
        }
    }
}

Vi börjar först med att ta reda på vad längden på vår sträng är med hjälp av  String klassens length() metod som vi sedan sparar i variabeln "L". For-slingan kommer att räkna upp från position 0 i strängen till meddelandets längd och substring kan då ta ut den del av strängen som börjar från denna position och slutar i slutet av strängen, d.v.s. "L" positionen. Vi lägger en paus på en tiondels sekund (100 millisekunder) efter att ha visat strängen. När strängen har "betats av" så börjar hela processen om igen med hjälp av while-slingan. 
Ta en titt på den färdiga statusscrollern genom att klicka här
 

 

 


Nästa sida >>