Visão panorâmica e rolagem de objetos de exibição

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

Se houver um objeto de exibição muito grande para a área na qual deseja exibi-lo, você pode usar a propriedade scrollRect para definir a área visível do objeto de exibição. Além disso, alterando a propriedade scrollRect em resposta à entrada do usuário, você pode obter uma visão panorâmica do conteúdo à esquerda e à direita e percorrer para cima e para baixo.

A propriedade scrollRect é uma ocorrência da classe Rectangle, que combina os valores necessários para definir uma área retangular como um único objeto. Para definir inicialmente a área visível do objeto de exibição, crie uma nova ocorrência de Rectangle e a atribua à propriedade scrollRect do objeto de exibição. Posteriormente, para percorrer ou obter a visão panorâmica, leia a propriedade scrollRect em uma variável separada de Rectangle e altere a propriedade desejada (por exemplo, altere a propriedade x da ocorrência de Rectangle para obter a visão panorâmica ou a propriedade y para percorrer). Em seguida, atribua novamente essa ocorrência de Rectangle à propriedade scrollRect para notificar o objeto de exibição do valor alterado.

Por exemplo, o código a seguir define a área visível de um objeto TextField chamado bigText que é muito pequeno para se adaptar nos limites do arquivo SWF. Quando são clicados, os dois botões chamados up e down chamam funções que fazem com que o conteúdo do objeto TextField se movimente para cima ou para baixo, modificando a propriedade y da ocorrência scrollRect de 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);

Como este exemplo ilustra, ao trabalhar com a propriedade scrollRect de um objeto de exibição, é melhor especificar que o Flash Player ou o AIR deve armazenar em cache o conteúdo do objeto de exibição como um bitmap, usando a propriedade cacheAsBitmap . Ao fazer isso, o Flash Player e o AIR não precisam redesenhar o conteúdo inteiro do objeto de exibição sempre que for movido e, assim, podem usar o bitmap em cache para renderizar a parte necessária diretamente na tela. Para obter detalhes, consulte Armazenamento em cache de objetos de exibição .