Una ScrollingFrame consiste in un canvas personalizzabile e barre di scorrimento con interattività di scorrimento integrata e diversi modi per personalizzare il funzionamento dello scorrimento. La ScrollingFrame è ideale per visualizzare molte informazioni in uno spazio ristretto e funziona bene con layout a lista e griglia.

Canvas
Il canvas è l'area principale di una ScrollingFrame che può contenere altri GuiObjects. Il comportamento di scorrimento si adatta automaticamente nei seguenti scenari:
| Impostazione del Frame | Risultato |
|---|---|
| La CanvasSize del frame è più alta della sua altezza complessiva; specificamente, il totale di CanvasSize.Y supera il totale di Size.Y. | Lo scorrimento verticale è abilitato e appare una barra di scorrimento verticale. |
| La CanvasSize del frame è più larga della sua larghezza complessiva; specificamente, il totale di CanvasSize.X supera il totale di Size.X. | Lo scorrimento orizzontale è abilitato e appare una barra di scorrimento orizzontale. |
| La AutomaticCanvasSize del frame è impostata su Y o XY e l'altezza totale dei suoi contenuti (child GuiObjects) supera il totale di Size.Y. | Lo scorrimento verticale è abilitato e appare una barra di scorrimento verticale. |
| La AutomaticCanvasSize del frame è impostata su X o XY e la larghezza totale dei suoi contenuti (child GuiObjects) supera il totale di Size.X. | Lo scorrimento orizzontale è abilitato e appare una barra di scorrimento orizzontale. |
La proprietà CanvasPosition riflette l'offset posizionale corrente del canvas all'interno del frame, in pixel, e imposta la posizione delle barre di scorrimento di conseguenza. Nota che questa proprietà non fa nulla se le barre di scorrimento non sono visibili.
Insets
La CanvasSize di un frame di scorrimento può essere influenzata dalle proprietà VerticalScrollBarInset e/o HorizontalScrollBarInset. Nel seguente diagramma di esempio, un frame di scorrimento verticale utilizza una larghezza del canvas del 100%. Con VerticalScrollBarInset impostato su None (predefinito), il canvas si estende fino alla larghezza totale del frame di scorrimento, oscurando una leggera quantità di contenuto sotto la barra di scorrimento. Al contrario, un'impostazione di VerticalScrollBarInset di Always o ScrollBar inietta il canvas di un importo pari a ScrollBarThickness in modo che il canvas si allinei perfettamente con la barra di scorrimento.

Barre di scorrimento
Le barre di scorrimento del frame riflettono la posizione corrente del canvas e forniscono interattività automatica di trascinamento per scorrere. Per le barre di scorrimento verticali, la proprietà VerticalScrollBarPosition sposta la posizione della barra a sinistra o a destra del canvas, ma le barre di scorrimento orizzontali possono essere posizionate solo sotto il canvas.
La costruzione della barra di scorrimento consiste in tre proprietà di asset:
- TopImage — Viene visualizzata in cima a una barra di scorrimento verticale, o a sinistra di una barra di scorrimento orizzontale (ruotata di 90° in senso antiorario per una barra di scorrimento orizzontale).
- MidImage — Si estende nell'area tra TopImage e BottomImage (ruotata di 90° in senso antiorario per una barra di scorrimento orizzontale).
- BottomImage — Viene visualizzata in fondo a una barra di scorrimento verticale, o a destra di una barra di scorrimento orizzontale (ruotata di 90° in senso antiorario per una barra di scorrimento orizzontale).

Ogni immagine si scala in base alla proprietà ScrollBarThickness che cambia la larghezza di una barra di scorrimento verticale o l'altezza di una barra di scorrimento orizzontale.
Ulteriori modifiche visive possono essere apportate tramite le proprietà ScrollBarImageColor3 e ScrollBarImageTransparency che colorano le immagini della barra e modificano la sua opacità, rispettivamente.
Clipping
By default, GuiObject containers ritagliano il loro contenuto (discendenti GuiObjects) attraverso il booleano ClipsDescendants. Se desideri che i discendenti appaiano al di fuori dei limiti di un contenitore, imposta semplicemente ClipsDescendants su false.


Importante, StarterGui.ClipsDescendantsSupportsRotation deve essere true affinché il ritaglio funzioni su discendenti ruotati (rotazione Rotation diversa da zero) all'interno del contenitore. Tuttavia, il ritaglio da un contenitore ruotato (il contenitore stesso è ruotato) o da angoli arrotondati (UICorner) non è supportato. Se hai bisogno di ritaglio su contenitori ruotati o arrotondati, considera CanvasGroup.

Rotation = 0

Rotation = 10
Elasticità
Per impostazione predefinita, i ScrollingFrames mostrano un comportamento di scorrimento elastico sui dispositivi abilitati al tocco, il che significa che gli utenti possono trascinare il canvas leggermente oltre i suoi limiti e, al rilascio, il canvas tornerà al suo limite minimo o massimo. Se desideri rimuovere completamente il comportamento elastico e garantire che il canvas non scorra mai oltre i suoi limiti, imposta la proprietà ElasticBehavior su Never.