Les directives de compilation

FlashPascal accepte cinq directives de compilation qui complètent le code Pascal.

{$FRAME_WIDTH 320}
{$FRAME_HEIGTH 200}
{$FRAME_RATE 25}
{$BITMAP image1 'Image1.bmp'}
{$JPEG image2 'Image2.jpg'}
FRAME_WIDTHlargeur de l'animation en pixels
FRAME_HEIGHThauteur de l'animation en pixels
FRAME_RATEcadence de rafraîchissement de l'animation en images par seconde
BITMAPcrée une ressource bitmap sous le nom donné en premier paramètre d'après le fichier donné en second paramètre. Seuls les bitmap 8 et 32 bits sont supportés.
JPEGcrée une ressource jpeg sous le nom donné en premier paramètre d'après le fichier donné en second paramètre.
FONTcrée une ressource font à partir d'un police True Type.
VIDEOinstancie un objet Video.

Notez que l'image Bitmap est compressée sans perte lors de l'insertion dans le fichier SWF qui est lui-même compressé. Il n'y a donc pas de conséquence dramatique sur la taille du fichier à utiliser le format Bitmap.
L'image JPEG est quand à elle intégrée sans aucune modification.
Si vous voulez une image semi transparente, vous pouvez utiliser le format Bitmap 32 bits avec un canal Alpha.

Font

Par défaut, FlashPascal utilise les polices installées sur le système.
Si vous désirez placer votre animation Flash sur un site Web en utilisant une police particulière, il est recommandé d'intégrer la police dans votre animation.
Notez également que seules les polices intégrées peuvent subir des rotations.

La directive attend au moins deux paramètres, le nom interne de la police et son nom Windows.
Il est également possible de définir les attributs gras (bold) et italique (italic) entre crochets.

// Police Verdana
{$FONT font1 'Verdana'}
// Police verdana en gras
{$FONT font1 'Verdana' [bold]}  
// Police verdana en gras et italique
{$FONT font1 'Verdana' [bold, italic]}  

La taille de la police n'est pas indiquée au niveau de la directive, et vous n'avez pas besoin d'intégrer plusieurs fois la même police pour différentes tailles. Contrairement aux polices systèmes, les polices intégrées sont définies dans une résolution fixe (20480 pixels !) puis sont mises à l'échelle lorsque vous précisez la taille désirée dans l'objet TextFormat. Le texte est généralement mieux dessiné par ce biais, à l'exception des très petites polices (en dessous de 12 pixels).

Pour utiliser une police intégrée, vous devez spécifier son nom et sa taille dans un TextFormat et basculer la propriété embedFonts à True.

program Exemple;

uses
  Flash8;
  
// Police 'Times New Roman' en gras et italique
{$FONT font1 'Times New Roman' [Bold, Italic]}
var
  titre: TextField;
begin
  titre := TextField.Create(nil, '', 1, 0, 0, Stage.width, Stage.height);
//titre.setNewTextFormat(TextFormat.Create('Times New Roman', 24, 0, True, True));
  titre.embedFonts := True;
  titre.setNewTextFormat(TextFormat.Create('font1', 24));
  titre.text := 'Texte du titre';
end.

Par défaut FlashPascal créera une image vectorielle pour chaque caractère de la police compris entre #0 et #255. Il n'est cependant pas rare qu'un petit nombre de caractères vous intéresse.
Dans l'exemple précédent, le titre "Texte du titre" ne comprend que les lettres " Tdeirtux". En ajoutant cette chaîne à votre déclaration, la police intégrée sera réduite à ces seuls caractères. La taille de votre animation sera alors beaucoup plus petite.

{$FONT font1 'Times New Roman' [Bold, Italic] ' Tdeirtux'}

Mais vous pouvez également indiquer directement le texte de votre titre, le compilateur fera tout seul le tri.

{$FONT font1 'Times New Roman' [Bold, Italic] ' Texte du titre'}

Si vous désirez utiliser une plage de caractères, de 'A' à 'Z' et de '0' à '9' par exemple, vous pouvez insérer deux points dans votre chaîne pour indiquer au compilateur de sélectionner tous les caractères entre les deux lettres qui entourent les deux points. Attention ces deux points doivent être en dehors des quotes !

{$FONT font1 'Times New Roman' [Bold, Italic] 'A'..'Z0'..'9'}

L'exemple "Police.fpr" est présent à partir de la version 12.06.21 de FlashPascal.
Vous remarquerez que les cases "Abc" en police système disparaissent dès qu'on leur applique une rotation.

Image écran
Image écran obtenue sous Chrome/Windows 7