22
FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

Embed Size (px)

Citation preview

Page 1: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

FLASH 2Interactivé: L'Action Script.

GAZE Baptiste – LAKHAL MeyssemSI 28

Page 2: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 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.

Page 3: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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.

Page 4: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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

Page 5: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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

Page 6: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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

Page 7: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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;

Page 8: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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)

Page 9: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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;

}

Page 10: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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

Page 11: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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++;

}

Page 12: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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));

Page 13: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

Déplacement dans la timeline

play(); lecture de l'animation

stop(); arret de l'animation

gotoAndPlay([séquence],image);

gotoAndStop([séquence],image);

Page 14: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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é");}

Page 15: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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

Page 16: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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

Page 17: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

Gestion du clavier

Exemple:

_root.onEnterFrame = function() {        if (Key.isDown(Key.SPACE)) {                trace("Barre d'espace appuyée");        }}

Page 18: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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

Page 19: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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

Page 20: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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.

Page 21: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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 :

Page 22: FLASH 2 Interactivé: L'Action Script. GAZE Baptiste – LAKHAL Meyssem SI 28

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");