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 >>
|