Les classes externes

Une des modifications apportées au langage Pascal dans FlashPascal est la possibilité de faire référence à une classe externe au programme.

De fait, le compilateur lui-même n'a que peu de connaissance des objets Flash. C'est l'objet de l'unité Flash8 que de décrire l'ensemble des objets Flash manipulables en FlashPascal. A l'image de l'unité Windows.pas de Delphi qui déclare l'API Windows, l'unité Flash8.pas de FlashPascal déclare les différentes classes intégrées au player Flash.

Avec une syntaxe de type "external class", vous pouvez déclarer un prototype de classe pour un objet intégré à la machine virtuelle Flash.
Voici par exemple comment déclarer la classe "flash.geom.Point".

type
Point = external class(flash.geom.Point) property length: Number; property x: Number; property y: Number; constructor Create(x, y: Number); function add(v: Point): Point; function clone: Point; class function distance(pt1, pt2: Point): Number; function equals(toCompare: TObject): Boolean; class function interpolate(pt1, pt2: Point; f: Number): Point; procedure normalize(length: Number); procedure offset(dx, dy: Number); class function polar(len, angle: Number): Point; function subtract(v: Point): Point; function toString: string; end;

Le nom interne de l'objet n'a pas besoin de correspondre au nom réel de la classe Flash. Si le nom est différent, ou - comme dans cet exemple - si c'est un nom composé, vous devez le faire apparaître entre parenthèses après le mot-clé "class".

Une classe externe peut comprendre un constructeur, des propriétés et des méthodes (fonctions et procédures). Par contre les champs ne sont pas autorisés; pour ajouter des champs à un objet externe, vous devez le dériver.

type
TPoint3D = class(Point) z: Number; end;