Bezeichnung
OpenAnim -- öffnet eine Animation (V9.0)
Übersicht
[id] = OpenAnim(id, filename$[, table])
Beschreibung
Dieser Befehl öffnet die in filename$ angegebene Animation und weist ihr den Identifikator id zu. Wenn Sie in id Nil übergeben, wählt OpenAnim() automatisch eine ID aus und gibt sie zurück.

Im Gegensatz zum Befehl LoadAnim() lädt OpenAnim() keine Einzelbilder in den Speicher. Somit wird die Kontrolle schnell wieder an das Skript zurückgegeben und es wird nicht viel Speicher verbraucht. Die Verwendung von OpenAnim() entspricht im Wesentlichen dem Aufruf von LoadAnim(), mit dem Tabellenargument FromDisk, das auf True gesetzt ist.

Animationsformate, die auf allen Plattformen unterstützt werden, sind IFF ANIM, GIF ANIM, AVI (unkomprimiert oder mit Motion JPEG-Komprimierung) und Formate, für die Sie ein Plugin haben. Abhängig von der Plattform, auf der Hollywood ausgeführt wird, werden möglicherweise mehr Animationsformate unterstützt. Auf Amiga-kompatiblen Systemen kann Hollywood beispielsweise auch alle Animationsformate öffnen, für die Sie Datentypen haben. Unter Windows kann OpenAnim() auch Animationsformate laden, die von der Windows-Imaging-Komponente unterstützt werden.

Das dritte Argument ist optional. Es ist eine Tabelle, mit der weitere Optionen für den Ladevorgang eingestellt werden können. Die folgenden Felder der Tabelle können verwendet werden:

Transparency:
In diesem Feld können Sie eine Farbe im RGB-Format angeben, die in der Animation transparent erscheinen soll.

LoadAlpha:
Setzen Sie dieses Feld auf True, wenn auch der Alphakanal der Animation geladen werden soll. Die Voreinstellung für dieses Feld ist False.

SkipLoopFrames:
Wenn Sie diesen Tag auf True setzen, wird Hollywood automatisch die letzten beiden Einzelbilder der Animation überspringen. Dies ist nur für IFF-Anims erforderlich, die zwei Schleifeneinzelbilder (loop frames) am Ende der Animation haben. Die automatische Erkennung von Schleifeneinzelbilder ist nicht möglich, denn das würde von Hollywood erfordern, zunächst die gesamte Animation zu dekodieren. Deshalb müssen Sie Hollywood manuell mitteilen, ob die Animation Schleifeneinzelbilder hat oder nicht.

Deinterlace:
Hiermit können Sie festlegen, wie Hollywood Interlaced-Anims darstellen soll. Dies kann entweder #DEINTERLACE_DEFAULT oder #DEINTERLACE_DOUBLE eingestellt werden. Wenn Sie #DEINTERLACE_DEFAULT benutzen (das ist, wie der Name auch impliziert, voreingestellt), wird Hollywood zwei Halbbilder in ein Vollbild kombinieren. Dies geschieht meist in bester Qualität, kann aber zu visuelle Artefakte führen, wenn eine Menge Bewegungen in der Animation vorkommen. Wenn Sie stattdessen #DEINTERLACE_DOUBLE verwenden, wird Hollywood die Zeilen eines Halbbildes verdoppeln, um ein Vollbild zu erhalten. Dies führt zu einem gewissen Qualitätsverlust, kann aber die Animation zu einem glatteren Aussehen verhelfen. Welches der bessere Deinterlacing-Modus ist, hängt immer von der Animation ab. Beachten Sie, dass Sie sich normalerweise überhaupt nicht um diesen Tag kümmern müssen, weil Deinterlacing eigentlich nur für einige obskure IFF-Formate erforderlich ist, die ANIM16i und ANIM32i Interlaced-Einzelbilder speichern.

Loader:
Mit diesem Tag können Sie einen oder mehrere Formatlademodule angeben, die die Animation laden soll. Dies muss mit einer Zeichenkette festgelegt werden, die den/die Namen eines oder mehreren Lademodulen beinhaltet. Standardmäßig wird der mit SetDefaultLoader() eingestellte Lader verwendet. Siehe Lade- und Adaptermodule für Details.

Adapter:
Mit diesem Tag können Sie einen oder mehrere Dateiadapter angeben, der die angegebene Datei öffnet. Dies muss mit einer Zeichenkette festgelegt werden, die den/die Namen eines oder mehreren Adaptermodulen beinhaltet. Standardmäßig wird der mit SetDefaultAdapter() eingestellte Adapter verwendet. Siehe Lade- und Adaptermodule für Details.

LoadTransparency:
Ist dieser Tag auf True gesetzt, wird die monochrome Transparenz der Animation geladen. Bitte beachten Sie, dass dieser Tag speziell für monochrome Transparenzkanäle ausgelegt ist, die einen transparenten Stift in einer palettenbasierten Animation haben. Wenn Sie den Alphakanal einer Animation laden möchten, stellen Sie den Tag LoadAlpha auf True. Dieser LoadTransparency-Tag ist standardmäßig auf False gesetzt.

LoadPalette:
Wenn dieser Tag auf True gesetzt ist, lädt Hollywood die Animation als Palettenanimation. Dies bedeutet, dass Sie die Palette der Animation abrufen und ändern können, was für bestimmte Effekte wie Farbwechsel nützlich ist. Sie können Stifte auch mit dem Tag TransparentPen (siehe unten) oder dem Tag LoadTransparency (siehe oben) transparent machen. Palettenanimationen haben auch den Vorteil, dass weniger Speicher benötigt wird, da 1 Pixel nur 1 Byte Speicher anstelle von 4 Byte für 32-Bit-Bilder benötigt. Dieser Tag ist standardmäßig auf False eingestellt. (V9.0)

TransparentPen:
Wenn der Tag LoadPalette auf True gesetzt wurde (siehe oben), kann mit dem Tag TransparentPen ein Stift definiert werden, der transparent gemacht werden soll. Stifte werden ab 0 gezählt. Alternativ können Sie den Tag LoadTransparency auch auf True setzen, um Hollywood zu zwingen, den in der Animationsdatei gespeicherten transparenten Stift zu verwenden (sofern das Animationsformat die Speicherung transparenter Stifte unterstützt). Dieser Tag ist standardmäßig auf #NOPEN gesetzt. (V9.0)

UserTags:
Dieser Tag kann verwendet werden, um zusätzliche Daten anzugeben, die an Lader und Adapter übergeben werden sollen. Wenn Sie diesen Tag verwenden, müssen Sie ihn auf eine Tabelle mit Schlüssel-Wert-Paaren setzen, die die zusätzlichen Daten enthalten, die an Plugins übergeben werden sollen. Siehe Benutzer-Tags für Details. (V10.0)

Bitte beachten Sie, dass die Tags Transparency, LoadTransparency und LoadAlpha sich gegenseitig ausschließen. Eine Animation kann nicht eine Maske und einen Alphakanal haben!

Dieser Befehl ist auch als Präprozessor-Anweisung verfügbar: Verwenden Sie @ANIM, um Animationen vom Präprozessor vorzuladen. Beachten Sie jedoch, dass Sie in diesem Fall FromDisk auf True setzen müssen, um das gleiche Verhalten wie OpenAnim() zu erzielen. Wenn Sie FromDisk nicht auf True setzen, lädt @ANIM die gesamte Animation in den Speicher!

Ab Hollywood 9.0 kann dieser Befehl auch Vektoranimationsformate öffnen, wenn Sie ein entsprechendes Plugin installiert haben. Beachten Sie jedoch, dass beim Öffnen von Vektoranimationsformaten mit OpenAnim() möglicherweise nicht alle Funktionen normaler Animationen unterstützt werden. Siehe Vektoranimationen für weitere Informationen zu Vektoranimationen.

Verwenden Sie den Befehl CloseAnim(), um eine von OpenAnim() zugewiesene Animation zu schliessen und aus dem Speicher zu löschen. Siehe CloseAnim für Details.

Eingaben
id
ID der Animation oder Nil für die automatische ID-Zuweisung
filename$
Datei zum Laden
table
optional: weitere Optionen (siehe oben)
Rückgabewerte
id
optional: Identifikator der Animation; wird nur zurückgegeben, wenn Sie Nil als Argument 1 angegeben haben (siehe oben)
Beispiel
OpenAnim(2, "MyAnim.gif", {Transparency = #RED})
Dies öffnet "MyAnim.gif" als Animation 2, wobei die Farbe Rot transparent ist.

Navigation zeigen