Table of Contents
23.3.5 Moviebox
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.
- GIF – Graphics Interchange Format
- MNG – Multiple-Image Network Graphics
23.3.5.1 Eigenschaften
Das sind die wichtigsten Eigenschaften der Container-Komponente Moviebox, die Sie abfragen oder setzen können:
- Property Border AS Integer
Sie können einen Rand (Etched, Plain, Raised oder Sunken) für die Moviebox festlegen oder auf einen Rand (None) verzichten - Property Path AS String
Pfad zum GIF-Bild oder zum MNG-Bild - Property Playing AS Boolean
Mit dem Festlegen dieser Eigenschaft starten oder stoppen Sie die Animation.
23.3.5.2 Methoden
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.
23.3.5.3 Projekt
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
23.3.5.4 Quelltext
' 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()
23.3.5.5 Hinweise
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



