Jeśli istnieje obiekt wyświetlany, który jest zbyt duży dla obszaru, w którym ma zostać wyświetlony, można użyć właściwości
scrollRect
w celu zdefiniowania widocznego obszaru obiektu wyświetlanego. Ponadto zmiana właściwości
scrollRect
w odpowiedzi na dane wprowadzone przez użytkownika umożliwia panoramowanie treści w lewo i w prawo lub przewijanie w górę i w dół.
Właściwość
scrollRect
jest instancją klasy Rectangle, która łączy w sobie wartości wymagane do zdefiniowania prostokąta w postaci pojedynczego obiektu. Aby wstępnie zdefiniować wyświetlany obszar obiektu wyświetlanego, należy utworzyć nową instancję Rectangle i przypisać ją do właściwości
scrollRect
obiektu wyświetlanego. W celu przewijania lub panoramowania należy wczytać właściwość
scrollRect
do osobnej zmiennej Rectangle i zmienić żądaną właściwość (np. zmienić właściwość
x
instancji Rectangle w celu panoramowania lub właściwość
y
w celu przewijania). Następnie należy ponownie przypisać instancję Rectangle do właściwości
scrollRect
w celu powiadomienia obiektu wyświetlanego o zmienionej wartości.
Przykład: poniższy kod definiuje obszar wyświetlany obiektu TextField o nazwie
bigText
, którego wysokość jest zbyt duża i dlatego obiekt nie może zostać dopasowany do krawędzi pliku SWF. Kliknięcie dwóch przycisków o nazwach
up
i
down
powoduje wywołanie funkcji, które powodują przewijanie treści obiektu TextField w górę lub w dół poprzez modyfikację właściwości
y
instancji
scrollRect
Rectangle.
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);
Zgodnie z tym przykładem podczas pracy z właściwością
scrollRect
obiektu wyświetlanego najlepszą metodą postępowania jest określenie, że program Flash Player lub AIR powinien zapisać w pamięci podręcznej treść obiektu wyświetlanego jako bitmapę, wykorzystując w tym celu właściwość
cacheAsBitmap
. W takim przypadku program Flash Player lub AIR nie musi ponownie rysować całej treści obiektu wyświetlanego za każdym razem, gdy zostanie on przewinięty — zamiast tego program może użyć bitmapy zapisanej w pamięci podręcznej w celu renderowania żądanej części bezpośrednio na ekranie. Szczegółowe informacje zawiera sekcja
Buforowanie obiektów ekranowych
.