Schwenken und Scrollen von Anzeigeobjekten

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

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 .