Als u een weergaveobject hebt dat te groot is voor het gebied waarin u het wilt weergeven, kunt u de eigenschap
scrollRect
gebruiken om het zichtbare gebied van het weergaveobject te definiëren. Als u de eigenschap
scrollRect
wijzigt als reactie op de gebruikersuitvoer, kunt u bovendien zorgen dat de inhoud naar links en rechts pant of naar boven en beneden schuift.
De eigenschap
scrollRect
is een instantie van de klasse Rectangle; dit is een klasse die de waarden combineert die nodig zijn om een rechthoekig gebied als een enkel object te definiëren. Als u het zichtbare gebied van het weergaveobject wilt definiëren, maakt u een nieuwe instantie Rectangle en wijst u deze toe aan de eigenschap
scrollRect
van het weergaveobject. Als u later wilt schuiven of pannen, leest u de eigenschap
scrollRect
in een aparte variabele Rectangle in, waarna u de gewenste eigenschap wijzigt (wijzig bijvoorbeeld de eigenschap
x
van de instantie Rectangle om te pannen of de eigenschap
y
om te schuiven). Vervolgens wijst u die instantie Rectangle toe aan de eigenschap
scrollRect
om de gewijzigde waarde aan het weergaveobject te melden.
Met de volgende code wordt bijvoorbeeld het zichtbare gebied gedefinieerd van een object TextField met de naam
bigText
dat te lang is om tussen de grenzen van het SWF-bestand te passen. Wanneer op de twee knoppen met de naam
up
en
down
wordt geklikt, roepen zij functies aan die ervoor zorgen dat de inhoud van het object TextField naar boven of naar beneden schuift door de eigenschap
y
van de Rectangle-instantie
scrollRect
te wijzigen.
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);
Dit voorbeeld demonstreert dat wanneer u met de eigenschap
scrollRect
van een weergaveobject werkt, het raadzaam is op te geven dat Flash Player of AIR de inhoud van het weergaveobject met behulp van de eigenschap
cacheAsBitmap
als bitmap in cache plaatst. Als u dit doet, hoeft Flash Player of AIR niet de gehele inhoud van het weergaveobject opnieuw te tekenen wanneer het object wordt verschoven en kan in plaats hiervan de bitmap in cache worden gebruikt om het benodigde gedeelte direct op het scherm te renderen. Zie
Weergaveobjecten in cache plaatsen
voor meer informatie.