[id] = LoadAnim(id, filename$[, table])
filename$
angegebene Animation
in den Speicher und weist ihr den Identifikator id
zu. Wenn Sie
Nil angeben, wird LoadAnim()
automatisch
eine ID für Sie auswählen.
Beachten Sie, dass dieser Befehl standardmäßig alle Animationseinzelbilder
in den Speicher lädt, was eine Weile dauern und viel Speicherplatz
in Anspruch nehmen kann. Wenn Sie eine Animation erstellen möchten,
die Einzelbilder dynamisch nach Bedarf lädt und nur das aktuelle
Einzelbild im Speicher behält, verwenden Sie stattdessen den
Befehl OpenAnim() oder setzen Sie den Tag
FromDisk
auf True
(siehe unten). Siehe OpenAnim für Details.
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. Je nach Plattform, auf der Hollywood ausgeführt wird, können mehr Animationsformate unterstützt werden. Zum Beispiel auf den Amigakompatiblen Systemen wird Hollywood in der Lage sein, alle Animationsformate zu öffnen, für die Sie ein Datatype haben.
Ab Hollywood 4.5 kann LoadAnim()
auch automatisch Animationen
aus einer Bilddatei erstellen. Wenn Sie eine Bilddatei mit
LoadAnim()
laden möchten, müssen Sie das optionale Argument
Frames
angeben. Siehe unten für weitere Informationen.
Das dritte Argument table
ist optional. Es ist eine Tabelle, die
für weitere Möglichkeiten des Ladevorgangs verwendet werden
kann. Die folgenden Tags stehen dafür zur Verfügung:
Transparency:
FromDisk:
True
setzen, wird Hollywood nicht
die gesamte Animation in den Speicher, sondern wenn nötig nur
die einzelnen Bilder direkt von der Festplatte laden. Dies
ist langsamer, aber erfordert viel weniger Speicher. Für die
Befehle der Animbibliothek spielt es keine Rolle, ob die Animation
vollständig im Speicher ist oder dynamisch von der Festplatte
geladen wird. Sie können alle Anim-Befehle wie ScaleAnim()
auch mit Anims verwenden, die von der Festplatte geladen werden.
Animationsebenen werden auch mit Plattenanims korrekt behandelt. (V3.0)
LoadAlpha:
True
, wenn der Alphakanal der Animation
auch geladen werden soll. Bitte beachten Sie, dass die meisten
Animformate keine Alphakanäle unterstützen. Daher ist es ratsam,
dass Sie die Animation manuell aus einem PNG-Bild mit CreateAnim()
erstellen, wenn Sie einen Alphakanal in Ihrer Animation
haben müssen. Dieser Tag ist standardmäßig auf False
gesetzt. (V4.5)
X, Y, Width, Height, Frames, FPR:
LoadAnim()
aus dem Bild
eine Animation erstellen kann. Width
und Height
(Breite
und Höhe) definieren die Dimensionen für die Animation und
Frames
gibt an, wie viele Einzelbilder LoadAnim()
aus dem Quellbild
lesen wird. Wenn die Einzelbilder in mehreren Reihen im Quellbild
gespeichert sind, müssen Sie auch das Argument FPR
(Abkürzung
für Frames (Einzelbilder) pro Reihe) verwenden müssen, um LoadAnim()
zu sagen,
wie viele Bilder es in jeder Reihe sind. Schließlich kann
man LoadAnim()
mitteilen, wo in der Bilddatei das Scannen
starten soll, indem Sie die Tags X
und Y
angeben (beide
standardmäßig auf 0 gesetzt). LoadAnim()
wird dann an der Position
X/Y
die in Frames
definierte Anzahl Bilder mit den Abmessungen
von Width
und Height
aus der Bilddatei filename$
lesen.
Nachdem die in FPR
angegebene Anzahl Bilder gelesen
hat, wird in die nächste Zeile vorgerückt. (V4.5)
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. (V5.3)
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 Anim ab. Beachten Sie, dass Sie sich eigentlich ü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. (V5.3)
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. (V6.0)
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!
Ab Hollywood 9.0 kann dieser Befehl auch Vektor-Animationsformate
laden, wenn Sie ein entsprechendes Plugin installiert haben.
Beachten Sie jedoch, dass beim Laden von Vektoranimformaten
mit LoadAnim()
die Animation möglicherweise nicht alle Funktionen
normaler Animationen unterstützt. Siehe Vektoranimationen für weitere Informationen zu Vektoranimationen.
Dieser Befehl ist auch als Präprozessor vorhanden: Benutzen Sie @ANIM, um Animationen vorzuladen.
LoadAnim(2, "MyAnim.gif", {Transparency = #RED})Dieser Code lädt die Datei "MyAnim.gif" als Animation 2 mit Rot als Transparenzfarbe.