Wenn Sie ein Anzeigeobjekt haben, das zu groß für den Bereich ist, in dem es angezeigt werden soll, können Sie den sichtbaren Bereich des Anzeigeobjekts mit der Eigenschaft
scrollRect
definieren. Darüber hinaus können Sie durch Ändern der
scrollRect
-Eigenschaft als Reaktion auf eine Benutzereingabe den Inhalt von links nach rechts schwenken oder nach oben und unten scrollen lassen.
Die
scrollRect
-Eigenschaft ist eine Instanz der Rectangle-Klasse. Diese Klasse fasst die zum Definieren eines rechteckigen Bereichs als einzelnes Objekt erforderlichen Werte zusammen. Um zunächst einmal den sichtbaren Bereich des Anzeigeobjekts zu definieren, erstellen Sie eine neue Rectangle-Instanz und weisen sie der Eigenschaft
scrollRect
des Anzeigeobjekts zu. Später, zum Scrollen oder Schwenken, lesen Sie die Eigenschaft
scrollRect
in eine separate Rectangle-Variable und ändern die gewünschte Eigenschaft (zum Schwenken die Eigenschaft
x
des Rechtecks und zum Scrollen die Eigenschaft
y).
Dann weisen Sie dieser Rectangle-Instanz die
scrollRect
-Eigenschaft erneut zu, um das Anzeigeobjekt über den geänderten Werte zu informieren.
Im folgenden Beispielcode wird der sichtbare Bereich eines TextField-Objekts namens
bigText
definiert, das zu hoch für die Begrenzungen der SWF-Datei ist. Durch Klicken auf die zwei Schaltflächen
up
und
down
werden Funktionen aufgerufen, die den Inhalt des TextField-Objekts durch Ändern der
y
-Eigenschaft der Rectangle-Instanz
scrollRect
nach oben oder unten scrollen.
import flash.events.MouseEvent;
import flash.geom.Rectangle;
// Define the initial viewable area of the TextField instance:
// left: 0, top: 0, width: TextField's width, height: 350 pixels.
bigText.scrollRect = new Rectangle(0, 0, bigText.width, 350);
// Cache the TextField as a bitmap to improve performance.
bigText.cacheAsBitmap = true;
// called when the "up" button is clicked
function scrollUp(event:MouseEvent):void
{
// Get access to the current scroll rectangle.
var rect:Rectangle = bigText.scrollRect;
// Decrease the y value of the rectangle by 20, effectively
// shifting the rectangle down by 20 pixels.
rect.y -= 20;
// Reassign the rectangle to the TextField to "apply" the change.
bigText.scrollRect = rect;
}
// called when the "down" button is clicked
function scrollDown(event:MouseEvent):void
{
// Get access to the current scroll rectangle.
var rect:Rectangle = bigText.scrollRect;
// Increase the y value of the rectangle by 20, effectively
// shifting the rectangle up by 20 pixels.
rect.y += 20;
// Reassign the rectangle to the TextField to "apply" the change.
bigText.scrollRect = rect;
}
up.addEventListener(MouseEvent.CLICK, scrollUp);
down.addEventListener(MouseEvent.CLICK, scrollDown);
Dieses Beispiel zeigt, dass beim Arbeiten mit der
scrollRect
-Eigenschaft eines Anzeigeobjekts Flash Player angewiesen werden sollte, den Inhalt des Anzeigeobjekts mit der
cacheAsBitmap
-Eigenschaft als Bitmap zwischenzuspeichern. Dann müssen Flash Player und AIR den gesamten Inhalt beim Scrollen des Anzeigeobjekts nicht jedes Mal neu zeichnen. Stattdessen kann die zwischengespeicherte Bitmap verwendet werden, um den erforderlichen Teil direkt auf dem Bildschirm darzustellen. Nähere Einzelheiten finden Sie unter
Zwischenspeichern von Anzeigeobjekten
.