Stage

La classe Stage permet de modifier la façon dont l'animation est affichée.

Par défaut, une animation Flash est affichée centrée et aussi grande que possible à l'intérieur de son conteneur (Player, Navigateur...). Les dimensions données par les directives de compilation FRAME_WIDTH et FRAME_HEIGHT servent de base pour les dimensions de l'image. Si le conteneur est de taille différente, l'image est agrandie ou rétrécie sans déformation.
Voici une petite animation de 100x100 pixels pour vous montrer de quoi il est question :

{$FRAME_WIDTH 100}
{$FRAME_HEIGTH 100}
{$BACKGROUND $0000FF}
begin
  with _root do
    lineStyle($FF0000);
    lineTo(150, 100);
    moveTo(25,25);
    lineTo(75,25);
    lineTo(75,75);
    lineTo(25,75);
    lineTo(25,25);
    opaqueBackground := $00ff00;
  end;
end.
100 x 100 pixels
150 x 100 pixels
100 x 150 pixels
150 x 150 pixels

la propriété scaleMode de la classe Stage permet de modifier ce comportement:

showAllC'est le mode par défaut présenté ci-dessus.
noBorderL'image occupe tout l'espace disponible, quitte a être tronquée.
exactFitL'image occupe tout l'espace disponible, quitte a être déformée.
noScaleL'image est affichée sans mise à l'échelle et la propriété align détermine sa position

200 x 150 pixels - showAll
200 x 150 pixels - noBorder
200 x 150 pixels - exactFit
200 x 150 pixels - noScale

En mode noScale, la propriété align précise comment est positionnée l'image. Par défaut elle est centrée, mais les lettre L, R, T et B permettent respectivement de la place à gauche (Left), à droite (Right), en haut (Top) ou en bas (Bottom) de son conteneur. Il est possible de combiner une position verticale et horizontale : TL, TR, BL, BR.

200 x 150 pixels - noScale
200 x 150 pixels - noScale L
200 x 150 pixels - noScale T
200 x 150 pixels - noScale TL

La dernière animation est obtenue par le code suivant.

{$FRAME_WIDTH 100}
{$FRAME_HEIGTH 100}
{$BACKGROUND $0000FF}
begin
  with _root do
    lineStyle($FF0000);
    lineTo(150, 100);
    moveTo(25,25);
    lineTo(75,25);
    lineTo(75,75);
    lineTo(25,75);
    lineTo(25,25);
    opaqueBackground := $00ff00;
  end;
  Stage.scaleMode := 'noScale';
  Stage.align := 'TL';
end.

Remarquez que les directives de compilations FRAME_WIDTH et FRAME_HEIGHT sont fixées à la compilation alors que la classe Stage peut être modifiée à tout moment dans le code.

Voici les autres propriétés de la classe Stage

propriététypedescription
displayStatestring'normal' ou 'fullScreen' pour basculer l'affichage en plein écran.
fullScreenSourceRectRectanglePrécise la portion de l'animation qui sera affichée en plein écran (à fixer avant de basculer l'animation en plein écran).
heightNumberhauteur de l'animation en pixels.
showMenuBooleanPermet de cacher une partie du menu Flash; il reste la partie paramétrage.
widthNumberlargeur de l'animation en pixels.

Il est possible d'ajouter un listener pour répondre aux événements suivants:

procedure onFullScreen(bFull: Boolean);Invoqué quand on entre ou quand on quitte le mode plein écran
procedure onResize;Invoqué quand le conteneur est redimensionné et que l'animation est en mode "noScale".