TransparencyInterpolator neu starten

Status
Nicht offen für weitere Antworten.

mar99

Mitglied
Ich habe eine komplette Szene erstellt, hierbei habe ich für einen ColorCube einen TransparencyInterpolator verwendet der einmal durchläuft. Nun sollte dieser Interpolator jedoch zur Laufzeit (sozusagen nach Usereingabe) neu gestartet werden, also das ich den Würfel wieder sehe --> ich muss irgendwie das behavior verändern können. Bis jetzt bin ich jedoch nur auf die Lösung gekommen eine neue BranchGroup anzulegen, das schaut mir jedoch performancemäßig nicht gerade optimal aus, da ich hunderte solcher Objekte habe und die relativ oft neu angelegt werden müßten.

Gibt es irgend eine Möglichkeit einen neuen TransparencyInterpolator anzulegen oder den vorhandenen neu zu starten? Bis jetzt ist es mir nur gelungen die transparency des Würfels zu setzen (jedoch ohne Interpolator :( )

Danke für jeden Tipp,
mar99
 

mar99

Mitglied
Das Problem ist das Neustarten des TransparencyInterpolators.

mar99

PS: Sorry für den Betreff, hab ich erst jetzt gesehen das ich da etwas vergeigt habe ???:L
 

mar99

Mitglied
Dagegen sprach eigentlich nur, das ich nicht wußte das es so geht :) (ich hab diese Methode wohl ganz einfach übersehen) --> danke und *freu*

Ich hoffe zumindest das ich das nun so halbwegs richtig gemacht habe. Zumindest dauert es nun so lange bis die Würfel unsichtbar sind wie ich es beim neuen Alpha Objekt eingestellt habe. Jedoch ergeben sich andere Probleme, und zwar beginnt der Interpolator nicht mit der der Zeit zu der das Alpha Objekt angelegt wurde, sondern alle Interpolatoren beginnen immer zur gleichen Zeit (da ich zu beginn alle zur gleichen Zeit angelegt habe?).
Die Situation ist also folgende. Ich habe 10 Würfel, und mein Testtreiber ruft nun jede Sekunde die manipulate Methode auf in der im wesentlichen folgendes drinnen ist (nur der Teil, der hierfür relevant ist)

Code:
manipulate() {
  Alpha a = new Alpha(-1, 4000);
  TransparencyInterpolator traInt = (TransparencyInterpolator) t.getChild(1); /* t ist die TransformGroup die einen Würfel und den dazugehörigen TransparencyInterpolator enthält*/
  traInt.setAlpha(a);
}

Das führt nun dazu das alle meine Würfel immer zur gleichen Zeit komplett sichtbar sind, und nicht - wie ich aufgrund der sekündlichen Aufrufe der manipulate Methode vermute - der erste komplett, der zweite zu 0,75, der dritte zu 0.5 usw.

Das herumspielen mit a.setStartTime() usw. bisher auch noch zu keinem entsprechenden Resultat geführt.

Wenn ich nun
Code:
  Alpha a = new Alpha(-1, 4000);
auf
Code:
  Alpha a = new Alpha(1, 4000);
ändere werden die Würfel gar nicht mehr angezeigt.

mar99
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben