Abbildung 23.3.5.1: GIF-Bild auf der Website http://gambasdoc.org/help/comp/gb.qt/moviebox
Diese Klasse (GB2: MovieBox (gb.qt), GB3:MovieBox (gb.qt4) ) bietet ein Steuerelement, das animierte GIF-Bilder oder MNG-Bilder anzeigt. GIF-Bilder oder MNG-Bilder bestehen aus mehreren Einzelbildern, die wie bei einem Film hintereinander für eine einstellbare Zeitdauer angezeigt werden.
Das sind die wichtigsten Eigenschaften der Container-Komponente Moviebox, die Sie abfragen oder setzen können:
Die Methode .Rewind setzt den Film auf den Anfang zurück. Sie können nach einem Stopp eines Filmes den Film entweder weiterlaufen lassen oder ihn neu starten.
In dem folgenden Programm können Sie animierte Grafiken in zwei unterschiedlichen Formaten starten, stoppen und weiterlaufen lassen oder den Film auf das erste Bild zurücksetzen. Das Zurücksetzen erkennt man aber nur dann, wenn der Film eine Länge von einigen Sekunden hat. Dem Projekt ist ein Film legolok.gif beigelegt, den Sie für eigene Experimente mit der Moviebox nutzen können.
Abbildung 23.3.5.2: Moviebox mit 2 Bildformaten
' Gambas class file PUBLIC SUB Form_Open() FMain.Center FMain.Border = 1 MovieBox1.Path = "Images/tanzen.gif" MovieBox2.Path = "Images/tanzen.mng" MovieBox1.Visible = TRUE MovieBox2.Visible = TRUE MovieBox1.Border = Border.Sunken MovieBox2.Border = Border.Raised ' … der optische Unterschied ist minimal StartAnimation() END ' Form_Open() PRIVATE SUB StartAnimation() MovieBox1.Playing = TRUE MovieBox2.Playing = TRUE btnStart.Enabled = FALSE END ' StartAnimation() PUBLIC SUB btnStart_Click() IF checkBox1.Value = TRUE THEN MovieBox1.Rewind MovieBox1.Playing = TRUE MovieBox2.Playing = TRUE btnStart.Enabled = FALSE btnStopp.Enabled = TRUE END ' Start PUBLIC SUB btnStopp_Click() MovieBox1.Playing = FALSE MovieBox2.Playing = FALSE btnStopp.Enabled = FALSE btnStart.Enabled = TRUE END ' Stopp PUBLIC SUB btnClose_Click() btnStopp_Click() btnStart.Enabled = FALSE WAIT 0.8 FMain.Close END ' Close_Click()
Beim Kompilieren des Programms erhalten Sie in der IDE von Gambas in der Konsole diverse Fehlermeldungen, die offensichtlich mit dem Format der animierten MNG-Bilder zu tun haben:
MNG error 4: Encountered unexpected end-of-file; chunk vpAg; subcode 0:0 MNG error 11: Function is invalid at this point; chunk vpAg; subcode 0:0
Mit dem Programm convert können Sie aus mehreren Einzelbildern in einem Verzeichnis einen Film im Format MNG herstellen oder ein Bild im GIF-Format in das MNG-Format – ohne eine Fehlermeldung bei korrekter Syntax – konvertieren:
hans@linux:~$ convert -delay 10 b-*.png film.mng hans@linux:~$ animate film.mng hans@linux:~$ convert /home/hans/bild.gif /home/hans/bild.mng hans@linux:~$ animate film.mng
Offensichtlich konvertiert das Programm convert NICHT korrekt in das MNG-Format, das weder W3C-konform ist noch sonst unterstützt wird – auch nicht vom Firefox. Das Programm Gimp kann mit dem MNG-Format ebenfalls nichts anfangen, wie folgende Fehlermeldung zeigt:
Abbildung 23.3.5.3: Fehlermeldung GIMP