Hiho!
so ich hab mal wieder ein Problem:
Ich habe eine Rollover-Effekt geschrieben.
dabei habe ich einen Thread, der 2 Animationen steuern soll, nähmlich:
-Das Aufbklinen einer Schrift (Schriftfarbe nähert sich weiß immmer mehr und Schriftzug wir neu gezeichnet, ausgelöst bei Mausberührung)
-Das 'Abbklinken' einer Schrift (Schriftfarbe nähert sich dem Originalzustand und wir neu gezeichnet, ausgelöst, wenn die Maus verschwindet)
Da läuft insoweit auch ganz gut ... ich benutzte bis jetzt die run()-Methode vom thread überhaupt nicht, sondern nur die sleep()-Methode.
Jetzt stell sich aber folgendes Problem:
Ich habe mehrere dieser Schriftzüge, und wenn einer Auf-oder Abblinkt, sind die anderen 'gesperrt'. (wenn man also mit der Maus von einem zum anderen geht, blinkt der 2. erst auf, wenn der 1. abgeblinkt ist.
Wie kann ich jetzt dir run()-Methode für beide animationen nutzen, um den wirklichen thread zu nutzen damit das prgrmm weiterläuft und auch noch mehr schriftzüge blinken können
die klasse dazu:
so ich hab mal wieder ein Problem:
Ich habe eine Rollover-Effekt geschrieben.
dabei habe ich einen Thread, der 2 Animationen steuern soll, nähmlich:
-Das Aufbklinen einer Schrift (Schriftfarbe nähert sich weiß immmer mehr und Schriftzug wir neu gezeichnet, ausgelöst bei Mausberührung)
-Das 'Abbklinken' einer Schrift (Schriftfarbe nähert sich dem Originalzustand und wir neu gezeichnet, ausgelöst, wenn die Maus verschwindet)
Da läuft insoweit auch ganz gut ... ich benutzte bis jetzt die run()-Methode vom thread überhaupt nicht, sondern nur die sleep()-Methode.
Jetzt stell sich aber folgendes Problem:
Ich habe mehrere dieser Schriftzüge, und wenn einer Auf-oder Abblinkt, sind die anderen 'gesperrt'. (wenn man also mit der Maus von einem zum anderen geht, blinkt der 2. erst auf, wenn der 1. abgeblinkt ist.
Wie kann ich jetzt dir run()-Methode für beide animationen nutzen, um den wirklichen thread zu nutzen damit das prgrmm weiterläuft und auch noch mehr schriftzüge blinken können
die klasse dazu:
Code:
public class Mausüberanimation extends Thread
{
int nummer; //Schriftzugnummer
float rotschritt = (255-(Menuschriftfarbe.getRed()))/10; //Farbschritte generieren
float grünschritt = (255-(Menuschriftfarbe.getGreen()))/10;
float blauschritt = (255-(Menuschriftfarbe.getBlue()))/10;
Mausüberanimation(int menupunkt)
{
nummer = menupunkt;
}
public void ein()
{
schriftani = true;
for(int i=0; i<=10; i++)
{
Menu1[nummer].eintragen(new Color((int)(Menuschriftfarbe.getRed()+i*rotschritt), (int)(Menuschriftfarbe.getGreen()+i*grünschritt), (int)(Menuschriftfarbe.getBlue()+i*blauschritt))); //hier wird der Schriftzug übergemalt (mit neuer Farbe)
try
{
Thread.sleep(40);
}
catch(InterruptedException e)
{
return;
}
}
return;
}
public void aus()
{
for(int i = 10; i>=0; i--)
{
Menu1[nummer].eintragen(new Color((int)(Menuschriftfarbe.getRed()+i*rotschritt), (int)(Menuschriftfarbe.getGreen()+i*grünschritt), (int)(Menuschriftfarbe.getBlue()+i*blauschritt))); //hier wird der Schriftzug übergemalt (mit neuer Farbe)
try
{
Thread.sleep(40);
}
catch(InterruptedException e)
{
return;
}
}
return;
}
public int getnummer()
{
return nummer;
}
}