Description
La syntaxe de script est basée sur le langage C, mais avec beaucoup
de différences : le bytcode SWF est simplifié pour ne faire que ce dont
on a besoin. Actuellement, nous ne pouvons pas implémenter des appels
à des fonctions sans d'affreux hacks, car le bytecode a des valeurs de
position codées en interne.
Que reste-t-il donc ? le compilateur reconnaît les instances suivantes :
-
break
-
for
-
continue
-
if
-
else
-
do
-
while
Il n'y a pas de données typées ; toutes les valeurs d'une action SWF sont
stockées sous la forme de chaînes de caractères. Les fonctions suivantes
peuvent être utilisées dans les expressions :
-
time()
-
Retourne le nombre de millisecondes effectuées depuis le début d'une vidéo.
-
random(seed)
-
Retourne le nombre pseudo-aléatoire dans la rangée 0-seed.
-
length(expr)
-
Retourne la longueur de l'expression donnée.
-
int(number)
-
Retourne le nombre donné arrondi au nombre inférieur.
-
concat(expr, expr)
-
Retourne la concaténation des expressions données.
-
ord(expr)
-
Retourne le code ASCII pour le caractère donné.
-
chr(num)
-
Retourne le caractère pour le code ASCII donné.
-
substr(string, location, length)
-
Retourne la sous chaîne de la longueur length
à la position location
de la chaîne
string
donnée.
De plus, les commandes suivantes peuvent être utilisées :
-
duplicateClip(clip, name, depth)
-
Duplique la vidéo nommée clip
(c'est-à-dire sprite).
La nouvelle vidéo a le nom name
et est à la
profondeur depth
.
-
removeClip(expr)
-
Efface la vidéo fournie.
-
trace(expr)
-
Écrit l'expression donnée dans l'historique des traces.
-
startDrag(target, lock, [left, top, right, bottom])
-
Démarre le déplacement de la vidéo target
.
L'argument lock
indique si l'on verrouille
la souris : utilisez 0 (FALSE) ou 1 (TRUE).
-
stopDrag()
-
Commence le déplacement.
-
callFrame(expr)
-
Appel la frame nommée, comme une fonction.
-
getURL(url, target, [method])
-
Charge l'URL donnée, dans la cible nommée. L'argument
target
correspond à la cible du document HTML
(comme "_top" ou "_blank").
L'argument optionnel method
peut être POST ou GET si vous voulez soumettre les variables au serveur.
-
loadMovie(url, target)
-
Charge l'URL donnée dans la cible nommée. L'argument
target
peut être le nom d'une frame, ou
une des valeurs magiques : "_level0" (remplace la vidéo courante)
ou "_level1" (charge la nouvelle vidéo au dessus de la vidéo courante).
-
nextFrame()
-
Se place sur la prochaine frame.
-
prevFrame()
-
Se place sur la dernière (ou, plutôt, précédente) frame.
-
play()
-
Commence à jouer la vidéo.
-
stop()
-
Arrête de jouer la vidéo.
-
toggleQuality()
-
Passe d'une qualité haute à basse, et inversement.
-
stopSounds()
-
Arrête de jouer tous les sons.
-
gotoFrame(num)
-
Se place sur la frame numéro num
.
Les numéros de frame commencent à 0.
-
gotoFrame(name)
-
Se place sur la frame nommée name
.
-
setTarget(expr)
-
Définit le contexte de l'action.
L'expression frameLoaded(num) peut être utilisée dans les instructions if
et les boucles while pour vérifier si le numéro de frame donné a déjà été chargé.
Les vidéos, c'est à dire des sprites, ont des propriétés. Vous pouvez les lire, en
définir quelques unes. Voici la liste :
-
x
-
y
-
xScale
-
yScale
-
currentFrame : (lecture seule)
-
totalFrames : (lecture seule)
-
alpha : degré de transparence
-
visible : 1=on, 0=off
-
width : (lecture seule)
-
height : (lecture seule)
-
rotation
-
target : (lecture seule)
-
framesLoaded : (lecture seule)
-
name
-
dropTarget : (lecture seule)
-
url : (lecture seule)
-
highQuality : 1=high, 0=low
-
focusRect
-
soundBufTime
Donc, définir la position d'un sprite est aussi simple que
/box.x = 100;. Pourquoi le slash au début ?
C'est la façon dont Flash garde une trace des sprites dans une vidéo,
tout comme le système de fichiers Unix : ici, la boite est au premier
niveau. Si le sprite nommée
"box" a un autre sprite nommé
"biff" au dessous,
vous pouvez définir sa position comme ceci :
/box/biff.x = 100;