Feature Request: Zeitobjekt

Kritik, Meinungen, Hilfeersuchen und Erfahrungsaustausch zu Stages 11 und älter
Antworten
S-Man42
Einsteiger
Einsteiger
Beiträge: 1
Registriert: Sa Okt 28, 2017 12:00

Feature Request: Zeitobjekt

Beitrag von S-Man42 »

Hi,

ich brauche immer mal wieder eine Art Zeit-Objekt: Ein Objekt, dass über einen bestimmten Zeitraum hinweg einfach die Zeit mitzählt.
Wenn das also eingefügt ist, soll es je nach Einstellung also wie eine Stoppuhr mitlaufen, oder vllt. Frames zählen.

Habe das momentan über ein Skript gelöst, dass alle Zehntelsekunden über die eingestellte Dauer ein neues Textobjekt generiert. Leider kann man das nicht auf hundertstel oder gar Frames erweitern, da dann einfach viel zu viele Objekte berechnet werden:

Code: Alles auswählen

procedure OnExpandSlideShow(SlideShowObject: ISlideShowObject)
begin
  var originTextObject = SlideShowObject.GetItem(0) as IText;
  
  var duration = (originTextObject as ISlideShowObject).Duration;
  (originTextObject as ISlideShowObject).setDuration(100);
  originTextObject.setText("0,0");

  var i: Integer;    
  i := 100;
  while i < duration do
  begin
    var newText = (originTextObject as ISlideShowObject).Clone as IText;
    newText.setText(FloatToStr(i / 1000));
    SlideShow.InsertAsChild(SlideShowObject, newText as ISlideShowObject, 0, false);
    
    i := i + 100; 
  end;
end;
Der Code hängt an einem Kapitel, das wiederum einen Text enthält. Mit dem Textobjekt kann die Schriftformatierung erledigt werden.

Jetzt wo ich das schreibe, fällt mir auf, man könnte auch alle Intervalle einfach den Text ändern, anstelle ein neues Objekt zu erstellen... Oder ging das nicht... Ich bin nicht mehr so drin im Code :D

Gruß Mark L.
Benutzeravatar
Steffen Binas
Moderator
Moderator
Beiträge: 3340
Registriert: Mi Mär 26, 2003 22:53
Kontaktdaten:

Re: Feature Request: Zeitobjekt

Beitrag von Steffen Binas »

Der Player generiert alle Objekte einmal beim Start. Der Text wird aus Performancegründen als Textur vorberechnet. Es ist damit leider nicht möglich, den Text dynamisch zu ändern.

Alternative Lösungsidee: Animator verwenden
Die Zahl in ihre Ziffern auflösen und pro Ziffer einen Animator gefüllt mit 10 Textobjekten mit den Ziffern 0-9 einfügen. Für jede Ziffer den Animator 10 Mal schneller bzw. langsamer laufen (je nach Richtung).

Beispiel mit 3 Ziffern hier: https://www.dropbox.com/s/jx3pjm9onh9nj ... r.ads?dl=1
Viele Grüße,
Steffen Binas, AquaSoft

Schau auf unseren YouTube-Kanal: youtube.com/aquasoft
Antworten