4.17 Image

4.17.1 Überblick

4.17.2 Anzeige von Bildern

4.17.3 Spezielle Attribute

4.17.4 Animationen

4.17.1 Überblick

Ein Imageobjekt dient dazu, eine Grafik anzuzeigen, die als fertiges Bild in einer Datei oder in der PictureList vorliegt. Der Programmierer muss nichts weiter tun als die anzuzeigende Grafik zu spezifizieren. Um den Rest kümmert sich das Imageobjekt. Sie können dem Objekt auch jederzeit eine andere Grafik zuweisen, es gibt keinen speziellen Befehl um den von der aktuellen Grafik eventuell belegten Speicher freizugeben. Darum kümmert sich das Objekt automatisch.

Das Imageobjekt kann auch Animationen ohne weiteres Zutun des Programmierers abspielen. Dabei können Sie festlegen, ob die Animation automatisch oder erst durch einen Programmbefehl gestartet werden soll.

Unterstützte Grafik-Formate:

  • Bitmap Dateien: JPG, BMP, ICO, PCX, GIF, TGA, RLE, DIB, SCR (BreadBox SplashScreen)

  • Animationen: GIF, FLC, FLI, BreadBox QuickCam Format

  • Resource-Maker Dateien (Bitmaps und GStrings)

  • Sonstige: GEOS Hintergrund-Dateien

Abstammung:

...

Spezielle Instance-Variablen:

Variable Syntax im UI-Code Im BASIC-Code
ImageFile ImageFile = stdPath, "file" nur schreiben
ImagePicture ImagePicture = "name" nur schreiben
ImageResource ImageResource = stdPath, "file", "name" nur schreiben
numPicts -- nur lesen
pictNum pictNum = n lesen, schreiben
imgInfo -- nur lesen
imgState -- nur lesen
scale scale = scaleX, scaleY lesen, schreiben
drawPos drawPos = x0, y0 lesen, schreiben
borderColor borderColor = ul, br lesen, schreiben
bgColor bgColor = col, drawMask lesen, schreiben
autoSize autoSize = TRUE | FALSE lesen, schreiben
autoStart autoStart = TRUE | FALSE lesen, schreiben
currentFrame -- lesen, schreiben
numFrames -- nur lesen
animationTics -- lesen, schreiben

Methoden:

Methode Aufgabe
Redraw Weist das Objekt an, sich neu darzustellen
AnimationStart Startet die Animation
AnimationStop Stoppt die Animation
AnimationNext Ruft den nächsten Frame der Animation auf

Das Imageobjekt erbt alle Eigenschaften und Fähigkeiten der GenericClass. Von besonderer Bedeutung sind dabei die Fähigkeiten zum Geometriemanagement (siehe Kapitel 3.3). Insbesondere die Hints fixedSize, initialSize, ExpandWidth und/oder ExpandHeight werden häufig genutzt, da das Image Objekt "von sich aus" keine vorgegebene Größe hat und sonst möglicherweise unsichtbar klein ist. Beachten Sie in diesem Zusammenhang auch die Instancevariable "autoSize".

Mausunterstützung

Das Imageobjekt unterstützt die Behandlung von Mausereignissen. Eine detaillierte Beschreibung der Arbeit mit der Maus finden Sie im Handbuch "Spezielle Themen", Kapitel 17.

Es ist möglich, innerhalb eines Maushandlers Grafiken oder Text auf den Bildschirm auszugeben. Dazu müssen Sie das Objekt explizit zum Screen machen. Häufig werden Sie außerdem die Maus grabben. Ein auf das Imageobjekt übertragbares Beispiel finden Sie hier: "Beispiel\Objekte\Grafik\Canvas Maus Demo". Beachten Sie aber, dass das Imageobjekt die Grafik- und Textausgaben nicht abspeichert! Sie werden nicht wieder gezeichnet, wenn das Objekt sich selbst neu darstellt.

Clipboard

Das Imageobjekt kann die aktuell dargestellte Grafik mit der Methode ClpCopy in die Zwischenablage kopieren. Diese Methode ist für alle Objektklassen definiert. Lesen aus der Zwischenablage wird nicht unterstützt.

Um herauszufinden, ob das Objekt eine Grafik darstellt, die ins Clipboard kopiert werden kann, können Sie die Methode ClpTestCopy verwenden. Diese Methode liefert TRUE wenn keine Grafik spezifiziert wurde, wenn die Grafikdatei nicht gelesen werden konnte oder in jedem anderen Fehlerfall.

Kopieren oder Drucken der Grafik

Um die aktuell dargestellte Grafik auf einen Drucker auszugeben verwenden Sie bitte die Routine PrintObj, die im Kapitel 4.14.7 (Drucken Spezieller Objekte) im Objekthandbuch beschrieben ist. Diese Routine können Sie auch verwenden, um die aktuell angezeigte Grafik auf das aktuelle Screenobjekt zu "drucken". Der Screen kann dabei eine Bitmap, ein GString oder was auch immer sein. Alternativ können Sie die Grafik zunächst ins Clipboard kopieren und vorn dort z.B. mit den Befehlen ClipboardGetGS oder ClipboardGetBitmap holen.

^

4.17.2 Anzeige von Bildern

Grafiken für das Image-Objekt können aus drei Quellen stammen: aus externen Bilddateien (Instancevariable ImageFile), aus der PictureList (Instancevariable ImagePicture) oder aus einer Resource-Datei (Instancevariable ImageResource). Außerdem haben Sie die Möglichkeit, Informationen über die angezeigte Grafik oder die Grafikdatei zu erhalten (Instancevariablen numPicts, pictNum, imgInfo und imgState).

Die Instancevariable ImageFile kann auch eine Animation spezifizieren. Die Details dazu werden im nächsten Abschnitt besprochen.

Die Methode Redraw ermöglicht ein Neuzeichnen der angezeigten Grafik.

ImageFile

ImageFile enthält den kompletten Pfad zur anzuzeigenden Datei. Wenn das Programm startet öffnet das Imageobjekt die Datei, lädt (kopiert) die Grafik und schließt die Datei wieder. Um zu prüfen, ob das Objekt ein Bild geladen hat können Sie die Instancevariable "numPicts" abfragen.

Wenn ImageFile eine Animation spezifiziert kann die Animation automatisch gestartet werden (siehe unten, Instancevariable "autoStart"). Während die Animation läuft bleibt die Datei die ganze Zeit offen.


Syntax UI-Code: imageFile = stdPath, "file"
     Schreiben: <obj>.imageFile = stdPath, "file"
         Lesen: --
       stdPath: Standardpfad-Konstante oder Null, siehe Tabelle.
         "file" Name der anzuzeigenden Datei.
                Pfadangaben sind zulässig. Siehe Tabelle.

Wird der Wert zur Laufzeit zugewiesen stellt sich das Objekt sofort neu dar. Außerdem wird die globale Variable fileError gesetzt.

Zulässige Kombinationen für stdPath und "file"

stdPath "file" Anmerkung
Standardpfad Konstante relativer Pfad zu einer Datei, z.B. SP_USER_DATA, "Bild.PCX" SP_DOCUMENT, "Bilder\\Bild.BMP"  
Null Absoluter Pfad zu einer Datei, z.B. 0, "D:\\Bilder\\Tools\\Circle.ICO"  
Null relativer Pfad zu einer Datei, d.h. relativ zum aktuellen Verzeichnis, z.B. 0, "Baum.BMP" 0, "Pflanzen\\Baum.BMP" Nicht im UI Code zulässig

Beispiele

Image DemoImage
  imageFile = SP_DOCUMENT, "IMAGES\\SUNSET.JPG"
End Object
Image DemoImage
  imageFile = SP_USER_DATA, "BACKGRND\\Froggy Bumps"
End Object
  DemoImage.imageFile = 0, "D:\\Bilder\\TEST3.RLE"


ImagePicture

ImagePicture enthält den Namen einer Grafik aus der PictureList. Die Grafik kann eine Bitmap oder ein GString sein. Die Verwendung der PictureList wird im Programmierhandbuch, Kapitel 2.8.6.2 (Verwendung der "PictureList") beschrieben.
Syntax UI-Code: imagePicture = "name"
     Schreiben: <obj>.imagePicture = "name"
         Lesen: --
         "name" Name der Grafik in der PictureList

Wird der Wert zur Laufzeit zugewiesen stellt sich das Objekt sofort neu dar. Um zu prüfen, ob das Objekt das Bild in der PictureList gefunden hat können Sie die Instancevariable "numPicts" abfragen.

Beispiele

Image DemoImage
  imagePicture = "Segler"
End Object
  DemoImage.imagePicture = "Diagram"


ImageResource

ImageResource ermöglicht dem Imageobjekt Grafiken (Bitmaps und GStrings) aus einer Resource-Maker Datei ohne weitere Unterstützung des Programmierers anzuzeigen. Der Resource-Maker ist © by Rabe-Soft und kann von der Website des Programmierers (www.rbettsteller.de) heruntergeladen werden.

Wenn das Programm startet öffnet das Imageobjekt die Datei, lädt (kopiert) die Grafik und schließt die Datei wieder. Um zu prüfen, ob das Objekt ein Bild geladen hat können Sie die Instancevariable "numPicts" abfragen.


Syntax UI-Code: imageResource = stdPath, "file", "name"
     Schreiben: <obj>.imageResource = stdPath, "file", "name"
         Lesen: --
       stdPath: Standardpfad-Konstante oder Null, siehe ImageFile.
         "file" Name der Resource-Datei. Pfadangaben sind zulässig.
                          Siehe ImageFile. 
         "name" Name des Grafik-Eintrags in der Resource-Datei.

Wird der Wert zur Laufzeit zugewiesen stellt sich das Objekt sofort neu dar. Außerdem wird die globale Variable fileError gesetzt.

Achtung! Falls die spezifizierte Datei keine gültige Resource-Datei ist crasht das System! Sie können im Zweifelsfall das Token abfragen.

Beispiele

Image DemoImage
  imageResource = SP_DOCUMENT, "IMAGES\\Test Resource", "Erde"
End Object
Image DemoImage
  imageResource = SP_USER_DATA,\
        "R-BASIC\\BIN\\Rainer\\SuperGame\\Super ImgResorce",\ 
        "SiegerAnimation"
End Object
  DemoImage.imageResource = 0, "D:\\TestResource", "Grafik1"


numPicts

Die Instancevariable numPicts enthält die Anzahl der Bilder in der Bilddatei. Kommt das Bild aus einer Resource oder aus der PictureList enthält numPicts den Wert 1. Im Fehlerfall oder wenn noch kein Bild zugewiesen wurde enthält numPicts den Wert Null. Sie können numPicts verwenden, um zu prüfen ob das Objekt ein Bild anzeigt oder nicht. Außerdem können Sie die globale Variable fileError abfragen. Verwenden Sie die Routine ErrorText$() um den Fehlercode in fileError in einen verständlichen Text zu übersetzen.
Syntax UI-Code: --
     Schreiben: --
         Lesen: <numVar> = <obj>.numPicts

 

pictNum

Die Instancevariable pictNum enthält die Nummer des gerade angezeigten Bildes für den Fall, dass die Datei mehr als ein Bild enthält. Das kann z.B. bei ICO Dateien zutreffen. Das erste Bild hat die Nummer Null. Es gilt also immer pictNum < numPicts. Für Bilder aus einer Resource oder aus der PictureList ist der Wert immer Null. Weisen Sie der Instancevariablen einen ungültigen Wert zu, so wird sie automatisch auf Null gesetzt.
Syntax UI-Code: pictNum = num
     Schreiben: <obj>.pictNum = num 
         Lesen: <numVar> = <obj>.pictNum 

 

ImgInfo

Die Instancevariable imgInfo liefert eine Struktur des Typs GraphicInfo. Diese enthält detaillierte Informationen über das aktuell vom Objekt angezeigte Bild. Die Struktur GraphicInfo ist im Anhang C beschrieben.
Syntax Lesen: <var> = <obj>.imgInfo 
         var: Variable vom Typ GraphicInfo

Die Struktur GraphicInfo ist wie folgt definiert:
STRUCT GraphicInfo
  sizeX as WORD
  sizeY as WORD
  bitsPerPixel as WORD
  numImages as WORD
End STRUCT

Hinweis:

Die von der Instancevariablen imgInfo gelieferten Daten können sich von denen, die von der Routine GetImageInfo geliefert werden (siehe Programmierhandbuch, Kapitel 2.8.6.3 Externe Bilddateien), unterscheiden. Das kann mehrere Gründe haben:

  • Bei Dateien, die mehrere Bilder enthalten können (z.B. ICO oder GIF Dateien) liefert GetImageInfo immer die Informationen für das erste Bild, imgInfo jedoch die Informationen für das vom Image-Objekt gerade angezeigte Bild. Dadurch können sich sowohl die Farbtiefe (GraphicInfo Feld bitsPerPixel) als auch die Bildgröße (GraphicInfo Felder sizeX und sizeY) unterschieden.

  • Bilder die mit 4 Bit per Pixel oder mit 32 Bit per Pixel kodiert sind werden vom Image-Objekt mit 8 bzw. 24 Bit per Pixel dargestellt. Die Instancevariable imgInfo liefert deswegen niemals eine Farbtiefe von 4 oder 32 Bit, die Routine GetImageInfo hingegen schon.


ImgState

Die Instancevariable imgState enthält die Information, welche Art von Bild das Objekt gerade darstellt. Der Wert kann nur gelesen werden.
Syntax Lesen: <numVar> = <obj>.imgState

ImgState liefert einen der folgenden Werte zurück:

Konstante Wert Bedeutung
IMGS_NO_IMAGE 0 Kein Bild oder Fehler
IMGS_BITMAP 1 Standbild, Bitmap
IMGS_GSTRING 2 Standbild, GString
IMGS_ANIMATION_RUNNING 3 Laufende Animation
IMGS_ANIMATION_PAUSE 4 Pausierte Animation


Redraw

Die Methode Redraw bewirkt, dass sich das Objekt neu auf dem Bildschirm darstellt. Der Aufruf der Methode ist nur selten notwendig. Ein Beispiel wäre, wenn Sie in einem Maushandler etwas auf den Screen gezeichnet haben und das einfach wieder löschen wollen.
        Syntax: <obj>.Redraw [drawBackground]
drawBackground: TRUE | FALSE (Default: FALSE)

Beispiel:
  DemoImage.Redraw
  DemoImage.Redraw TRUE
DrawBackground = TRUE bewirkt, dass das Objekt seinen Hintergrund ebenfalls neu zeichnet. Das kann erforderlich sein, wenn die Grafik transparente Anteile enthält oder Sie die Instancevariablen drawPos, borderColor und / oder bgColor verwendet haben.

^

4.17.3 Spezielle Attribute

Neben dem "einfachen" Darstellen von Bildern und Animationen können Sie die Eigenschaften des Imageobjekts in gewissen Grenzen einstellen. Insbesondere können Sie festlegen, dass die Grafik vergrößert oder verkleinert dargestellt wird (Instancevariable scale), an eine andere Position als die linke obere Ecke gezeichnet wird (Instancevariable drawPos), Sie können einen Rahmen um die Grafik zeichnen (Instancevariable borderColor) und einen farbigen Hintergrund festlegen (Instancevariable bgColor). Außerdem können Sie festlegen, dass das Objekt seine Größe an die Größe der dargestellten Grafik anpassen soll (Instancevariable autoSize).

Scale

Scale enthält einen Faktor, um den die Grafik bei der Darstellung gestreckt oder gestaucht wird. In den meisten Fällen brauchen Sie keinen Skalierungsfaktor zu setzen, weil der Defaultwert in x- und in y-Richtung 1 ist.
Syntax UI-Code: scale = scaleX, scaleY
     Schreiben: <obj>.scale = scaleX, scaleY 
         Lesen: <numVar> = <obj>.scale(n)
          n= 0: x-Skalierungsfaktor lesen
          n= 1: y-Skalierungsfaktor lesen
        scaleX: Skalierungsfaktor in x-Richtung
        scaleY: Skalierungsfaktor in y-Richtung

Beispiel: Grafik in doppelter Größe darstellen:
Image DemoImage
  imageFile = SP_DOCUMENT, "IMAGES\\SUNSET.JPG"
  scale = 2, 2
End Object


DrawPos

Die Instancevariable drawPos enthält die Koordinaten, auf die die linke obere Ecke der Grafik gezeichnet werden soll. Der Defaultwert ist (0; 0). Negative Koordinaten sind zulässig.
Syntax UI-Code: drawPos = x0, y0
     Schreiben: <obj>.drawPos = x0, y0 
         Lesen: <numVar> = <obj>.drawPos(n)
          n= 0: x-Position lesen
          n= 1: y-Position lesen
                x0, y0 Koordinaten

 

borderColor

Die Instancevariable borderColor enthält Farbwerte um einen dünnen Rahmen um das Objekt zu zeichnen. Die Defaultwerte sind jeweils -1, das heißt per Default wird kein Rahmen gezeichnet.

Der Rahmen wird immer um das ganze Objekt gezeichnet, auch wenn die Grafik kleiner als Objekt ist und/oder nicht auf die Position (0; 0) gezeichnet wird.


Syntax UI-Code: borderColor = ltCol, rbCol
     Schreiben: <obj>.borderColor = ltCol, rbCol 
         Lesen: <numVar> = <obj>.borderColor(n)
          n= 0: ltCol lesen
          n= 1: brCol lesen
         ltCol: Farbwert für die Linien links und oben (left, top)
            -1: Links und oben keinen Rahmen zeichnen (Default)
         rbCol: Farbwert für die Linien rechts und unten (right, bottom)
            -1: Rechts und unten keinen Rahmen zeichnen (Default)
                Für ltCol und rbCol sind nur Indexfarben zulässig.

 

bgColor

Mit der Instancevariablen bgColor kann man eine Hintergrundfarbe für die Grafik festlegen. Das kann sinnvoll sein, wenn die Grafik transparente Anteile enthält. Der Defaultwert für den Parameter col ist -1, das heißt es wird die vom System vorgegeben Hintergrundfarbe ohne Füllmuster verwendet.
Syntax UI-Code: bgColor = col, pattern
     Schreiben: <obj>.bgColor = col, pattern 
         Lesen: <numVar> = <obj>.bgColor(n)
          n= 0: Farbe col lesen
          n= 1: Füllmuster pattern lesen
           col: Farbwert für den Hintergrund (nur Indexfarben erlaubt)
            -1: Systemhintergrund verwenden (Default)
       pattern: Füllmuster (erlaubte Werte: siehe Tabelle unten)

BgColor ist für alle GenericClass Objekte definiert und erwartet einen Farbwert für das unselektierte und einen für das selektiert Objekt. Da dies bei Image-Objekten nicht sinnvoll ist wird der zweite Parameter als Füllmuster-Wert interpretiert. Wenn Sie kein Muster, sondern eine vollständig gefüllte Fläche wünschen, müssen Sie die Konstante DM_100 (Wert: 25) als zweiten Parameter verwenden.

Füllmuster werden im Programmierhandbuch, Kapitel 2.8.4 (Die Systemvariable "graphic": Mixmodes und mehr) beschrieben. Im Anhang C finden Sie verschiedene Beispiele für die von GEOS bereitgestellten Füllmuster.

Tabelle: Erlaubte Werte für Füllmuster

Wert Konstante Bedeutung
 0 - 24 -- Von GEOS bereitgestellte Muster.
25 DM_100 "Normalzustand", 100% Deckung.
26 - 88 -- Unterschiedliche "Transparenzgrade". Größere Werte entsprechen höherer Transparenz.
89 DM_0 Null % Deckung, vollständig transparent.
128 DM_INVERSE Wird zu einem der anderen Werte addiert. Das Muster wird invertiert.
Beispiele:
Die folgenden Bilder setzen folgende Objektdeklaration voraus:

Image DemoImage
  imageFile = 0, "D:\\Bilder\\TEST3.RLE"
  fixedSize = 80, 80
End OBJECT

...

Von links nach rechts wurden folgende Zeilen hinzugefügt:

  • keine (Standardansicht, Grafik auf Position (0; 0) )

  • drawPos = 8, 8
    borderColor= WHITE, BLACK

  • drawPos = 8, 8
    borderColor= WHITE, BLACK
    bgColor = LIGHT_BLUE, DM_100
Die Umrandung und der Hintergrund (Instancevariablen borderColor und bgColor) werden auch dann gezeichnet, wenn dem Objekt keine Grafik zugewiesen ist (oder wenn die Grafik ungültig ist). Das Behandeln von Mausereignissen ist in allen diesen Fällen trotzdem möglich. Das kann man benutzen um sehr einfach eine farbige Fläche zu erzeugen. Bitte beachten Sie das Füllmuster im dritten Beispiel.

...

Von links nach rechts wurden folgende Zeilen hinzugefügt:

  • keine (Standarddarstellung im Fehlerfall)

  • borderColor= WHITE, BLACK
    bgColor = LIGHT_GREEN, DM_100

  • borderColor= WHITE, BLACK
    bgColor = BLACK, 8 ' Versuchen Sie auch bgColor = RED, 8 + 128


autoSize

Die Instancevariable autoSize bestimmt, ob das Objekt seine Größe an die dargestellte Grafik anpassen soll. Der Defaultwert ist FALSE (Größe nicht automatisch berechnen).

Hat autoSize den Wert TRUE so berechnet das Objekt seine Größe automatisch neu, wenn das Programm startet oder wenn es eine neue Grafik darstellen soll.

Intern setzt das Objekt den Hint "fixedSize" um seine Größe festzulegen. Dabei kommen folgende Formeln zur Anwendung:

  Breite = breite_der_grafik + 2 * drawPos_x
    Höhe = höhe_der_grafik + 2 * drawPos_y
Durch dieses Vorgehen wird ein "Rahmen" um die eigentliche Grafik erzeugt, wenn Sie die Instancevariable "drawPos" verwenden.
Syntax UI-Code: autoSize = TRUE 
                Der Defaultwert ist FALSE.
     Schreiben: <obj>.autoSize = TRUE | FALSE
         Lesen: <numVar> = <obj>.autoSize 

Sie können die Größe des Imageobjekts bei der automatischen Berechnung begrenzen, indem Sie die Hints "minimumSize" und "maximumSize" verwenden. Der Berechnungsalgorithmus prüft, ob einer oder beide dieser Hints gesetzt sind und schränkt die Werte für Breite und Höhe des Objekts so ein, dass die minimalen und maximalen Werte nicht überschritten werden. Diese Werte werden dann an den Hint "fixedSize" übergeben.

Wichtige Hinweise:

  • Bei der Berechnung der Größe wird der Skalierungsfaktor (Instancevariable "scale") nicht berücksichtigt.

  • Wählen Sie aus einer Datei mit mehreren Bildern (z.B. einer ICO Datei) ein neues Bild aus, so berechnet das Imageobjekt seine Größe jedes Mal neu.

  • Wenn Sie "autoSize" zu Laufzeit auf TRUE setzen berechnet das Objekt seine Größe umgehend neu und stellt sich neu dar. Das gilt auch, wenn sie bereits TRUE ist.

  • Eine Neubelegung der Instancevariable "drawPos" bewirkt keine Neuberechnung der Größe des Objekts.

^

4.17.4 Animationen

Das Image-Objekt kann Animationen automatisch ohne weiteres Zutun des Programmierers abspielen. Die Berechnung und Darstellung der Bilder erfolgt dabei im Hintergrund, so dass Ihr BASIC Programm ganz normal weiterarbeiten kann.

Um eine Animation mit einem Image-Objekt darzustellen müssen Sie dem Objekt nur eine Datei zuweisen, die eine Animation enthält (Instancevariable ImageFile). Mit den Methoden AnimationStart, AnimationStop und AnimationNext haben Sie volle Kontrolle über das Abspielen der Animation. Mit der Instancevariablen autoStart können Sie festlegen, dass die Animation automatisch startet. Informationen über den aktuellen Status der Animation bekommen Sie mit den Instancevariablen currentFrame, numFrames, animationTics (kann auch gesetzt werden um die Geschwindigkeit zu ändern) sowie den weiter oben beschriebenen Instancevariablen imgInfo und imgState.

AnimationStart

Die Methode AnimationStart startet eine Animation. Sie können AnimationStart auch zum Fortsetzen einer mit AnimationStop angehaltenen Animation verwenden. Wenn Sie im UI Code die Instancevariable autoStart auf TRUE gesetzt haben startet die Animation beim Laden des Programms automatisch, ohne den Aufruf von AnimationStart.
Syntax: <obj>.AnimationStart

 

AnimationStop

Die Methode AnimationStop hält eine laufende Animation an. Falls Sie eine Animation in einer Dialogbox haben sollten Sie nach dem Schließen der Dialogbox AnimationStop rufen, damit die Animation nicht unnötig im Hintergrund weiterläuft.
Syntax: <obj>.AnimationStop

 

AnimationNext

Die Methode AnimationNext wählt das nächste Bild einer angehaltenen Animation an. AnimationNext ist wirkungslos bei einer laufenden Animation.
Syntax: <obj>.AnimationNext

 
Beispiel. Die im Objekt DemoImage laufende Animation wird für 3 Sekunden gestoppt, dann wird das nächste Bild angezeigt und nach weiteren 3 Sekunden wir die Animation mit normaler Geschwindigkeit fortgesetzt.
  DemoImage.AnimationStop
  Pause 30
  DemoImage.AnimationNext
  Pause 30
  DemoImage.AnimationStart


autoStart

Die Instancevariable autoStart bestimmt, ob ein vom Imageobjekt angezeigte Animation beim Starten des Programms oder bei der Zuweisung einer neuen Datei automatisch abgespielt werden soll oder nicht. Der Defaultwert ist FALSE (Animation nicht automatisch starten). Beachten Sie, dass eine gestartete Animation "im Hintergrund" weiterläuft auch wenn das Imageobjekt gerade nicht sichtbar ist. Setzen Sie "autoStart" nur dann auf TRUE, wenn es wirklich notwendig ist.

Wenn Sie "autoStart" zu Laufzeit auf TRUE setzen wird die Animation sofort gestartet.


Syntax UI-Code: autoStart = TRUE 
                Der Defaultwert ist FALSE.
     Schreiben: <obj>.autoStart = TRUE | FALSE
         Lesen: <numVar> = <obj>.autoStart

 

currentFrame

Die Instancevariable currentFrame enthält die Nummer des aktuell angezeigten Bildes der Animation. Die Zählung beginnt bei Null. Der Wert kann jederzeit gelesen werden. Ein Setzen zur Laufzeit ist nur möglich, wenn die Animation gerade nicht läuft. Im UI-Code kann der Wert nicht gesetzt werden.
Syntax UI-Code: --
     Schreiben: <obj>.currentFrame = wert 
         Lesen: <numVar> = <obj>.currentFrame

Hinweis: Das Aufrufen eines speziellen Frames kann manchmal etwas dauern, weil das Aussehen eines Bildes vom Aussehen der vorhergehenden Bilder abhängen kann. Deshalb muss das Image Objekt möglicherweise einen großen Teil der Animation erneut dekodieren um den gewünschten Frame anzuzeigen.

numFrames

Die Instancevariable numFrames enthält die Anzahl der Bilder in einer Animation. Im Fehlerfall enthält numFrames den Wert Null. Außerdem können Sie im Fehlerfall die globale Variable fileError abfragen, um das Problem einzugrenzen. Verwenden Sie die Routine ErrorText$() um den Fehlercode in fileError in einen verständlichen Text zu übersetzen.
Syntax UI-Code: --
     Schreiben: --
         Lesen: <numVar> = <obj>.numFrames

 

animationTics

Die Instancevariable animationTics enthält die Zeit zwischen zwei benachbarten Frames einer Animation, gemessen in tics (1 tic = 1/60 s). Je kleiner der Wert ist, desto schneller läuft die Animation. Der Wert kann zur Laufzeit gelesen und geschrieben, aber nicht im UI Code gesetzt werden.

Wird der Wert bei laufender Animation gesetzt so ändert das Imageobjekt die Abspielgeschwindigkeit sofort.


Syntax UI-Code: --
     Schreiben: <obj>.animationTics = <Wert> 
         Lesen: <numVar> = <obj>.animationTics

^

Weiter...