FLASH 2Interactivé: L'Action Script.
GAZE Baptiste – LAKHAL MeyssemSI 28
Action Script
Langage de programmation de Flash:Ajoute de l’interactivité.
Permet de contrôler les clips: naviguer entre les images,les scènes,fichiers;
lire fichiers audio/video;...
Permettre la gestion des objets
Où place t'on le code ?Dans l' objet lui même (bouton ou le clip)ou bienDans une image de la scène.
Structure d'un document Flash
_root
Clip A Clip B Clip C
Clip D
Structure hierarchisée:
_root correspond à la scène principale
Les clips A, B et C sont imbriqués dans la scène
Le Clip D est imbriqué dans le Clip C.
Chemin absolu / Chemin relatif
Le Chemin absolu ne dépend pas de l'endroit où on se trouve.
Par exemple:_root.clipC._???=... permet d'effectuer une action sur le clipC quelque soit
l'endroit où je tape le code
Le Chemin relatif, quant à lui, dépend du clip dans lequel on tape le code:
Par exemple:On se trouve dans ClipC:
this._???=...
si on se trouve dans le Clip D:_parent._???=....
Ainsi this correspond au clip où se trouve le code et _parent au clip parent
Principales propriétés des clips
Positionnement:_x : abscisse du clip_y : ordonnée du clip
Redimensionnement:Agrandissement en pourcentageLa valeur d'origine pour un clip est _xscale = _yscale = 100 _xscale= 200 : on multiplie par 2 l'abscisse_yscale=50 : on divise l'ordonnée par 2Valeur absolue:_width: largeur(pixels)_height: longeur(pixels)
_rotation=90 (en degres)
_alpha=0 : objet invisible mais actif_visible=false : l'objet n'est plus actif, ni visible
y
x
0
Variables
Types de variables:Number Array (Tableau)String(Chaîne de caractères) Boolean
Declarations de variables:
var Nom_variable:Type_variable = new Type_Variable(Valeur_Variable);Exemple:var monnombre:Number=new Number(45); //Méthode complète
var Nom_variable:Type_variable=valeur_variable;Exemple: var monnombre:Number = 123; //Méthode plus simple, mais correcte
Nom_variable =valeur_variableExemple: monnombre = 123; //Méthode courte, et peu recommandée, car on ne donne pas le type de variable
Variables (suite)
Pour les variables de types String, la chaîne de caractères doit être mis entre guillemets:Exemple: var machaine String = "Salut"
Tableau:Declaration:var montableau:Array = new Array("a", "b", "c");
Comment acceder aux elements d'un tableau?Exemple: pour recuperer le « b », on tape montableau[1]; l'indice du premier element est 0,du deuxième element est 1,...
BooleanDeux valeurs possibles : true ou falsevar mabool:Boolean = false;pour Flash: true=1 et false =0on peut avoir true + 3 = 4;
Variables globales :elles sont connues à tous les niveaux de l'applicationExemple: _global.mavariable=12;
Variables locales:Elles sont connues uniquement dans le contexte où elles ont été
déclarées (objet,fonction,...)
Exercices:Zone de texte (avec les variables)Opérations sur les variablesVariable et hierarchie des clips
Variables (suite)
Structures conditionelles
Le bloc if:
if (condition) {//Si condition est vraie} else if (condition2) {//Si condition2 est vraie} else {// Si condition 1 et condition2 sont fausses}
Forme contractée(condition) ? /*si vraie*/ : /* si faux */ ;
Le Switch:
switch(variable){case cas_1: instruction1 ; break;case cas_2 : instruction2; break;
.
.default : instruction_default;
}
Opérateurs de test
A == B : test l'égalitéA != B : rend true si a est différent de BA < B : rend true si A est plus petit que BA > B: rend true si A est plus grand que B
A <= B rend true si A est plus petit ou egal à BA >= B rend true si A est plus grand ou egal à B
peu utilisés=== : egalité entre les valeurs et les types;!==
L'opposé !A rend true si A=false
le ouA || B : rend vrai si a ou B est vrai
le etA && B : rend vrai si A ET B sont vrais
Opérateurs sur les booléens
Boucles
La boucle for:
1.Déclaration de ma variable 2.Condition sur la variable pour que la boucle se fasse 3.Modification de ma variable pour que la boucle ne se fasse pas à l'infinie
Exemple:
for(var i:Number=0;i<=10;i++){trace(i);
}
La boucle While
while (condition) {// actions à effectuer}
var i:Number=0;while(i!=11){
trace(i);i++;
}
Les fonctions
function somme(a:Number,b:Number) : Number {return a+b;
}trace(somme(25,5));
Autre forme:somme = function(a:Number,b:Number) : Number {
return a+b;}
trace(somme(25,5));
Déplacement dans la timeline
play(); lecture de l'animation
stop(); arret de l'animation
gotoAndPlay([séquence],image);
gotoAndStop([séquence],image);
Les évènements
Les événements sont des actions, tel un clic de souris de l'utilisateur ou la pression d'une touche du clavier, qui se produisent pendant l'animation.
Quand l'utilisateur fera telle ou telle action, l'événement correspondant sera appelé et le code associé sera exécuté.
Version longue:
mafonction = function () {trace ("évènement appelé");}monclip.monevenement = mafonction;
Version semi-longue:
function mafonction() {trace ("évènement appelé");}monclip.monevenement = mafonction;
Version courte:
monclip.monevenement = function () {trace ("événement appelé");}
Evènements souris
Locaux au clip portant l'évènement:
onPress
onRelease
onReleaseOutside
onRollOver
onRollOut : appelé après onRollOver
N'importe où sur la scène:
onMouseDownonMouseUp : appelé après onMouseDownonMouseMove
appelés après onPress
Evènements (suite)
onLoadonLoad s'exécute dès que le clip est chargé.
Mais on ne l'utilise pas vraiment.
onEnterFrame
Cet événement se déclenche de façon constante et continue. Sa fréquence d'exécution correspond au nombre d'images par seconde de l'animation.
Drag and Drop, Changement de curseur
Gestion du clavier
Exemple:
_root.onEnterFrame = function() { if (Key.isDown(Key.SPACE)) { trace("Barre d'espace appuyée"); }}
Charger une autre applicaton Flash
Deux methodes:
1ere méthode:mon_clip.loadMovie("chemin_relatif/anim.swf");
si on code dans la scène principale, et qu'on veut appeler l'animation anim, on remplace mon_clip par this
2ème méthode:loadMovieNum("chemin_relatif/anim.swf", 0);
Le chiffre correspond au niveau auquel on veut charger le fichier,0 pour la scène principale
Collision
Le HitTest fonctionne de deux façons:
- Soit entre deux Clips : (clip1.hitTest(clip2))Dans ce cas, il trace un rectangle invisible autour des deux formes complexes.
-Soit un Clip par rapport à un point ( clip1.hitTest(x, y, valeur booleene)).Si le bool est true, alors il trace un rectangle invisible autour du clip comme precedement, sinon seule la partie occupée par le clip compte (c'est ca qui est interessant)
- La fonction rend un boolean et s'emploie donc dans le cadre d'un if le plus souvent
Son
Pour utiliser un son ou une musique, il faut d’abord créer un objet le représentant :
var mysong = new Sound();
Pour charger le son dans le fichier, il existe deux manières différentes selon si le son est dans un fichier externe ou s’il est dans la bibliothèque :
mysong.loadSound(« url du fichier ») ;
mysong.attachSound(« identifiant ») ; (Liaison, exporter pour actionScript)
L'identifiant est situé dans la boîte de dialogue Propriétés de liaison, clic droit sur le son dans la bibliothèque.
Son (suite)
Voici quelques fonctions et membres disponibles sur l’objet « Sound » une fois charger :
mysong.start(décalageSecondes,nbLectures) ;Démarre la musique « nbLectures » fois avec un décalage de X secondes ;
mysong.stop() ;
mysong.setVolume() ;Permet de régler le volume. Pour une bonne qualité, ne dépassez pas 100 ;
mysong.getVolume() ;
mysong.position ;Position de la lecture en millisecondes ;
mysong.duration ;Durée du son en milliseconde.
StopAllSounds(); Pour couper toutes musiques :
Video
Deux methodes:1ere méthode:
On fait un Importer dans la biblithèque (ou glisser vers la bibliothèque) et on suit les indications.
2ème méthode:
- Ajout d’un la bibliothèque d’un objet vidéo. (Clic droit sur la bibliothèque New Vidéos)
- Création d’une instance dans l’espace de travail. (On la met à la bonne taille, la nomme etc…)
- Code Actionscriptvar connection:NetConnection = new NetConnection(); // Etablit une connexionconnection.connect(null);
var flux_video:NetStream = new NetStream(connection); // un NetConnection en argument
video.attachVideo(flux_video); // video est le nom de l’instanceflux_video.play("Chemin_relatif/nom_video");