Om du har ett visningsobjekt som är för stort för ytan där det ska presenteras kan du använda egenskapen
scrollRect
och definiera visningsytan för visningsobjektet. Dessutom, genom ändring av egenskapen
scrollRect
för att indata från användaren ska motsvaras kan innehållet panoreras från vänster till höger eller rullas uppåt och nedåt.
Egenskapen
scrollRect
är en instans i klassen Rectangle, där värdena som behövs för att definiera en rektangulär yta kombineras till ett enda objekt. För att först definiera visningsobjektets yta skapar du en ny Rectangle-instans och tilldelar den till visningsobjektets egenskap
scrollRect
. När du sedan vill rulla eller panorera läser du in egenskapen
scrollRect
till en separat Rectangle-variabel och ändrar önskad egenskap (till exempel Rectangle-instansens egenskap
x
för panorering eller
y
för bläddring.) Därefter omtilldelar du Rectangle-instansen till egenskapen
scrollRect
så att visningsobjektet aviseras om ändrat värde.
I nedanstående kod definieras den visningsbara ytan för ett TextField-objektet
bigText
som är för högt för att få plats inom SWF-filens gränser. När de båda knapparna
up
och
down
klickas anropas funktioner som gör att innehållet i TextField-objektet rullas uppåt eller nedåt genom att
y
-egenskapen i Rectangle-instansen
scrollRect
ändras.
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);
När du arbetar med egenskapen
scrollRect
för ett visningsobjekt är det bästa sättet att ange att Flash Player ska cachelagra visningsobjektets innehåll som en bitmapp med hjälp av egenskapen
cacheAsBitmap
. När du gör detta behöver inte Flash Player och AIR rita om hela innehållet i visningsobjektet varje gång det rullas. Den cachelagrade bitmappen kan i stället användas till att återge den nödvändiga delen direkt på bildskärmen. Mer information finns i
Cachelagra visningsobjekt
.