Panorering och rullning av visningsobjekt

Flash Player 9 och senare, Adobe AIR 1.0 och senare

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 .