Feature Request: Zeitobjekt

Alles rund um AquaSoft Stages 10 - bitte beachten Sie die Forenregeln und die Nettiquette
Antworten
S-Man42
Einsteiger
Einsteiger
Beiträge: 1
Registriert: Sa Okt 28, 2017 12:00

Feature Request: Zeitobjekt

Beitrag von S-Man42 » Sa Okt 28, 2017 12:09

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: 3205
Registriert: Mi Mär 26, 2003 22:53
Kontaktdaten:

Re: Feature Request: Zeitobjekt

Beitrag von Steffen Binas » Mi Nov 01, 2017 11:07

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
MfG Steffen Binas, AquaSoft

Neuste Infos gewünscht? Folgen Sie uns auf Twitter: http://twitter.com/aquasoft_de
Bild

Antworten