[id] = OpenAnim(id, filename$[, table])
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:
LoadAlpha:
True
, wenn auch der Alphakanal der
Animation geladen werden soll. Die Voreinstellung für dieses
Feld ist False
.
SkipLoopFrames:
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:
#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:
Adapter:
LoadTransparency:
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:
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:
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:
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.
OpenAnim(2, "MyAnim.gif", {Transparency = #RED})Dies öffnet "MyAnim.gif" als Animation 2, wobei die Farbe Rot transparent ist.