Interactivé: L'Action Script. FLASH 2 Interactivé: L'Action Script. SI 28 GAZE Baptiste – LAKHAL Meyssem
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 bien Dans 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: 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 pourcentage La 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 2 x y Valeur 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
Variables Types de variables: Declarations 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_variable Exemple: 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,... Boolean Deux valeurs possibles : true ou false var mabool:Boolean = false; pour Flash: true=1 et false =0 on peut avoir true + 3 = 4;
Variables (suite) Variables globales : Variables locales: Exercices: elles sont connues à tous les niveaux de l'application Exemple: _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 variables Variable et hierarchie des clips
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 sur les booléens Opérateurs de test Opérateurs sur les booléens A == B : test l'égalité A != B : rend true si a est différent de B A < B : rend true si A est plus petit que B A > B: rend true si A est plus grand que B A <= B rend true si A est plus petit ou egal à B A >= 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 ou A || B : rend vrai si a ou B est vrai le et A && B : rend vrai si A ET B sont vrais
Boucles La boucle for: La boucle While 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 appelés après onPress N'importe où sur la scène: onMouseDown onMouseUp : appelé après onMouseDown onMouseMove
Evènements (suite) onLoad onEnterFrame onLoad 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 Actionscript var connection:NetConnection = new NetConnection(); // Etablit une connexion connection.connect(null); var flux_video:NetStream = new NetStream(connection); // un NetConnection en argument video.attachVideo(flux_video); // video est le nom de l’instance flux_video.play("Chemin_relatif/nom_video");