Panoramica e scorrimento di oggetti di visualizzazione

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

Se un oggetto di visualizzazione è troppo grande per l'area in cui deve essere visualizzato, potete utilizzare la proprietà scrollRect per definire l'area visualizzabile dell'oggetto. Inoltre, modificando la proprietà scrollRect in risposta a un input dell'utente, potete fare scorrere il contenuto visualizzato orizzontalmente e verticalmente.

La proprietà scrollRect è un'istanza della classe Rectangle, in grado di combinare i valori necessari per definire un'area rettangolare come singolo oggetto. Per definire inizialmente l'area visualizzabile dell'oggetto, create una nuova istanza di Rectangle e assegnatela alla proprietà scrollRect dell'oggetto di visualizzazione. Quindi, per fare scorrere l'oggetto, leggete la proprietà scrollRect in una variabile Rectangle separata e modificare la proprietà desiderata (ad esempio, modificate la proprietà x dell'istanza Rectangle per lo scorrimento orizzontale e la proprietà y per lo scorrimento verticale). Infine, riassegnate l'istanza di Rectangle alla proprietà scrollRect per notificare all'oggetto di visualizzazione l'avvenuta modifica del valore.

Il codice seguente, ad esempio, definisce l'area visualizzabile di un oggetto TextField denominato bigText , troppo grande per rientrare nei limiti fisici del SWF. Quando i due pulsanti denominati up e down vengono selezionati, essi chiamano funzioni che provocano lo scorrimento dell'oggetto TextField verso l'alto o verso il basso, mediante la modifica della proprietà y dell'istanza di Rectangle scrollRect .

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);

Come dimostra l'esempio, quando si lavora con la proprietà scrollRect di un oggetto di visualizzazione, è consigliabile fare in modo che Flash Player o AIR memorizzino nella cache il contenuto dell'oggetto di visualizzazione come bitmap, utilizzando la proprietà cacheAsBitmap. In tal modo, Flash Player o AIR non devono ridisegnare l'intero contenuto dell'oggetto di visualizzazione ogni volta che viene fatto scorrere e possono invece utilizzare la bitmap memorizzata nella cache per eseguire il rendering della porzione necessaria direttamente sullo schermo. Per maggiori dettagli, vedete la sezione Memorizzazione nella cache di oggetti di visualizzazione .