Bitmap-Klasse und BitmapData-Klasse

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Die wichtigsten ActionScript 3.0-Klassen für die Arbeit mit Bitmaps sind die Bitmap-Klasse, die der Anzeige von Bitmaps auf der Bühne dient, und die BitmapData-Klasse, die für den Zugriff auf und die Bearbeitung von Bildrohdaten einer Bitmap verwendet wird.

Bitmap-Klasse

Als Unterklasse der DisplayObject-Klasse handelt es sich bei der Bitmap-Klasse um die Hauptklasse von ActionScript 3.0 für die Anzeige von Bitmapbildern. Diese Bilder können über die flash.display.Loader-Klasse geladen oder mit dem Bitmap() -Konstruktor dynamisch erstellt worden sein. Beim Laden einer Bitmapgrafik aus einer externen Quelle können als Bitmap-Objekte nur Bilder im Format GIF, JPEG oder PNG verwendet werden. Nach der Instanziierung kann die Bitmap-Instanz als Wrapper eines BitmapData-Objekts eingesetzt werden, das auf der Bühne dargestellt werden soll. Da es sich bei Bitmap-Instanzen um Anzeigeobjekte handelt, können Bitmap-Instanzen auch mit allen Eigenschaften und Funktionen von Anzeigeobjekten bearbeitet werden. Weitere Informationen zur Verwendung von Anzeigeobjekten finden Sie unter Programmieren von Anzeigeobjekten .

Pixelausrichtung und -glättung

Neben den Funktionen, die in allen Anzeigeobjekten verfügbar sind, werden mit der Bitmap-Klasse einige zusätzliche für Bitmapbilder spezifische Funktionen bereitgestellt.

Die pixelSnapping -Eigenschaft der Bitmap-Klasse bestimmt, ob ein Bitmap-Objekt an seinen nächsten Pixeln ausgerichtet wird oder nicht. Für diese Eigenschaft kann eine der drei in der PixelSnapping-Klasse definierten Konstanten angegeben werden: ALWAYS , AUTO und NEVER .

Die Syntax für die Pixelausrichtung lautet wie folgt:

myBitmap.pixelSnapping = PixelSnapping.ALWAYS;

Nach dem Skalieren sind Bitmapbilder häufig verschwommen und verzerrt. Verzerrungen können mithilfe der smoothing -Eigenschaft der BitmapData-Klasse reduziert werden. Wenn diese boolesche Eigenschaft auf true gesetzt ist, werden die Pixel im Bild beim Skalieren geglättet (Anti-Aliasing). Dadurch wird das Bild klarer und natürlicher dargestellt.

BitmapData-Klasse

Die im flash.display-Paket enthaltene BitmapData-Klasse ist mit einem fotografischen Schnappschuss der Pixel vergleichbar, die in einem geladenen oder dynamisch erstellten Bitmapbild vorhanden sind. Der Schnappschuss wird als Array von Pixeldaten im Objekt abgebildet. Die BitmapData-Klasse enthält zudem mehrere integrierte Methoden, die hilfreich zum Erstellen und Bearbeiten von Pixeldaten sind.

Verwenden Sie zum Instanziieren eines BitmapData-Objekts den folgenden Code:

var myBitmap:BitmapData = new BitmapData(width:Number, height:Number, transparent:Boolean, fillColor:uinit);

Die Parameter width und height geben die Größe der Bitmap an. Beginnend mit AIR 3 und Flash Player 11 wurden die Größenbegrenzungen für BitmapData-Objekte entfernt. Die maximale Bitmapgröße wird durch das Betriebssystem festgelegt.

In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite eines BitmapData-Objekts 8.191 Pixel, die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein BitmapData-Objekt also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite.

Mit dem transparent -Parameter wird angegeben, ob die Bitmapdaten einen Alphakanal enthalten ( true ) oder nicht ( false ). Der fillColor -Parameter ist ein 32-Bit-Farbwert, mit dem die Hintergrundfarbe sowie der Transparenzwert (wenn der entsprechende Parameter auf true gesetzt ist) angegeben werden. Im folgenden Beispiel wird ein BitmapData-Objekt mit orangefarbenem Hintergrund erstellt, der zu 50 % transparent ist:

var myBitmap:BitmapData = new BitmapData(150, 150, true, 0x80FF3300);

Wenn Sie ein neu erstelltes BitmapData-Objekt auf dem Bildschirm darstellen möchten, weisen Sie es einer Bitmap-Instanz zu oder schließen Sie es in eine Bitmap-Instanz ein. Dazu können Sie das BitmapData-Objekt entweder als Parameter für den Konstruktor des Bitmap-Objekts übergeben oder der bitmapData -Eigenschaft einer vorhandenen Bitmap-Instanz zuweisen. Darüber hinaus müssen Sie die Bitmap-Instanz zur Anzeigeliste hinzufügen, indem Sie die Methode addChild() oder addChildAt() des Anzeigeobjektcontainers aufrufen, der die Bitmap-Instanz enthält. Weitere Informationen zur Verwendung der Anzeigeliste finden Sie unter Hinzufügen von Anzeigeobjekten zur Anzeigeliste .

Im folgenden Beispiel wird ein BitmapData-Objekt mit roter Füllung erstellt und in einer Bitmap-Instanz angezeigt:

var myBitmapDataObject:BitmapData = new BitmapData(150, 150, false, 0xFF0000); 
var myImage:Bitmap = new Bitmap(myBitmapDataObject); 
addChild(myImage);