Les Bases de flash : Code : les fonctions
Fichtre ! Dire que j'avais oublié une notion capitale ! Les fonctions.
Alors, avant tout un petit rappel de ce qu'est une fonction en général (en mathématiques, en informatique, en presque tout on utilise des fonctions !). Puis après on verra ce qu'on en fait en flash ;-)
Qu'est-ce que céti que ça ?
Représentez-vous la fonction comme une machine : j'y fais rentrer quelque-chose (en général un nombre, mais on peut varier on le verra après) et il en ressort quelque chose d'autre, qui est fonction de l'entrée. Comme si on la transformait...
Par exemple :
Ici, c'est une fonction qui quand on lui donne un x, vous redonne x+1 à la sortie.
Alors bien sûr, on peut faire des fonction super compliquée avec des (x² - 3x +5)*Ln(x) + 23x
ça existe... Mais il faut y trouver une utilité, par exemple savoir comment évolue la population d'une ville en fonction des années X, est-ce que ça augmente, est-ce que ça augmente trop vite, et tout ça...
Mais ça, c'est des maths, de l'éco, et pas du flash. on va passer au flash, mais avant je tiens à préciser qu'une fonction peut être multi-dimensionnelle, c'est à dire fonction de plusieurs variables, comme par exemple :
3x + 2y - 5
Alors, comment on écrit tout ça en maths ?
tout simplement :
f(x) = x+1
f(x,y) = 3x + 2y - 5
Ici, notre fonction s'appelle f(x) (prononcer "f de x").
En Flash, et dans beaucoup d'autres langages, on peut donner les noms qu'on veut à nos fonctions, tant qu'on s'y retrouve, on peut les appeler Ginette(x), maFonctionNumero1(x,y)... Comme on veut.
En flash
Alors, on a déjà des fonctions déjà programmées par les gentils messieurs qui ont développé Flash. comme par exemple on a déjà vu la fonction trace(); :
trace("bonjour"); // affiche "bonjour" dans le panneau de sortie
Et vous allez me dire :
Quoi, mais c'est pas un nombre ! Et c'est pas un calcul !
Ouaip, et ?
Car en flash, et presque partout, dans une fonction, on peut mettre ce qu'on veut, tant qu'on sait le traiter...
Définir ma propre fonction
Oui, parce que c'est bien beau tout ça, mais moi je veux faire ma propre fonction. Alors on va la déclarer, comme une variable, mais en spécifiant bien que c'est une fonction :
ginette = function(x){
y = x+1;
return(x);
}
Décortiquons :
- ginette : le nom de la fonction
- = function : c'est bien une fonction que nous déclarons
- (x) : elle aura un unique paramètre, nommé x
- y = x+1 : on exécute les opération qu'on veut, on définit des nouvelles variables.
- return(y) : on "renvoie" cette variable, pour qu'on puisse l'utiliser.
Donc, en parlant d'utiliser, comment je fais ?
Ok, c'est partit :
// on défini notre fonction
ginette = function(x){
y = x+1;
return(x);
}
// On défini une variable à transformer
entree = 6;
// on la passe dans Ginette(x);
sortie = ginette(entree);
// On peut même la tracer :
trace(sortie); //affiche 7
Bon, ok, tu m'avais dit qu'on pouvait mettre autre chose dans nos fonctions, qu'est-ce qu'il se passe si je fais :
trace(ginette("bonjour"));
ça explose. Ba oui, j'avais dit qu'on pouvait mettre "bonjour" comme paramètre, mais bon, essayer d'ajouter +1 à "bonjour", ça veut rien dire.
On assiste donc à une incompatibilité des types : on essaie de traiter une "string" (chaîne de caractères) comme un "Number" (nombre).
Comment on fait des fonctions spéciales strings alors ? Comme ceci :
germaine = function(variable:String){
transformer = "Bonjour "+variable;
return(transformer);
}
Comme ça, je vais l'utiliser comme ceci :
sortie = germaine("visiteur de Kommunauty.fr");
Elle va me renvoyer "Bonjour visiteur de Kommunauty.fr" !!
Cas particulier : pas de paramètre !
Eh oui, je peux définir une fonction dont les entrées n'influent en rien le résultat. Mais ça sert à quoi, que vous allez me dire ?
Tout simplement, si j'ai un bout de code très long, et que je dois le répéter plusieurs fois, pour éviter de me rajouter inutilement des lignes de code en paquet, je vais déclarer une fonction :
raccourci = function(){
// Gros
// Code
// Très
// Long
// et
// fastidieux
}
Et puis après, quand j'aurai besoin d'utiliser ces lignes de code, j'appellerai tout simplement la fonction :
raccourci();
Note : pas besoin de mettre de "return()" dans la fonction puisqu'elle ne renvoie rien, et pas besoin de la mettre dans une variable non-plus.
Autre avantage de cette technique : si on veut modifier ces lignes de code parce qu'on se rend compte qu'il y a une erreur, en modifiant une fois la fonction, ça modifie à tous les endroits où elle est appelée !
Voilà, je pense que c'est tout pour les fonctions, envoyez-moi un MP si besoin,
Merci d'avoir suivi ce tutoriel,
Dawlin
« Retour au sommaire
Sois le premier à débuter une discussion à propos de cet article !
Ajoute un commentaire !