Return to Video

Magic Functions (Video Version)

  • 0:00 - 0:05
    Vous vous êtes probablement aperçu que
    vous avez déjà définit une fonction spéciale
  • 0:05 - 0:09
    à chaque fois que vous avez fait des animations
    dans vos programmes : la fonction "draw"
  • 0:09 - 0:14
    Pour rappel, voici le programme
    qui anime une voiture...
  • 0:14 - 0:16
    vous avez "var x=11"
  • 0:16 - 0:18
    qui représente la position de départ
  • 0:18 - 0:20
    et la fonction "draw" contient
    tout le code de dessin
  • 0:20 - 0:23
    et on augmente "x" de 3 à chaque fois.
  • 0:23 - 0:28
    Et en redémarrant le programme,
    la voiture bouge.
  • 0:28 - 0:31
    Maintenant que vous savez comment
    faire vos propres fonctions,
  • 0:31 - 0:34
    vous vous demandez peut être à quoi
    correspond cette fonction "draw" ?
  • 0:34 - 0:37
    Est-ce une fonction spéciale, pourquoi
    est-elle appelée "draw",...
  • 0:37 - 0:40
    Ce sont de très bonnes questions.
  • 0:40 - 0:43
    Alors... Dans notre environnement,
    ici à Khan Academy,
  • 0:43 - 0:46
    il y a quelques fonctions spéciales,
  • 0:46 - 0:50
    je les appelle des "fonctions magiques".
    Mais c'est juste moi qui les appelle comme ça.
  • 0:50 - 0:53
    Quand on fait fonctionner VOS fonctions,
  • 0:53 - 0:56
    on regarde d'abord pour voir si vous définissez
    des fonctions avec certains noms.
  • 0:56 - 1:00
    comme "draw", et, si c'est le cas,
    on les appel à certains moments.
  • 1:00 - 1:03
    Par exemple, si vous définissez
    une fonction "draw" dans votre code,
  • 1:03 - 1:07
    on va trouver cette fonction, on va
    regarder le code qui est à l'intérieur
  • 1:07 - 1:12
    et on va appeler ce code tant que possible,
    le plus vite possible, sans s'arrêter.
  • 1:12 - 1:17
    Si vous n'avez pas de fonction "draw",
    on n'aura rien à appeler.
  • 1:17 - 1:23
    Ça veut dire aussi que si on change
    le nom de cette fonction, en... "drow"
  • 1:23 - 1:26
    OK, ça ne fonctionne plus.
  • 1:26 - 1:29
    ou en "dessineVoiture"...
    OK, ça ne marche plus, non plus.
  • 1:29 - 1:33
    Donc si on change son nom,
    le programme ne la trouvera pas,
  • 1:33 - 1:36
    et du coup, elle ne sera pas appelée.
  • 1:36 - 1:38
    Et du coup, le code ne sera pas
    appelé régulièrement,
  • 1:38 - 1:40
    il sera tout simplement jamais appeler !
  • 1:40 - 1:44
    Cela veut dire aussi que vous ne devriez pas
    appeler vos propres fonctions "draw"
  • 1:44 - 1:49
    sinon, elle sera appelée en permanence !
  • 1:49 - 1:52
    OK. "draw()" n'est pas la seule
    fonction magique disponible.
  • 1:52 - 1:58
    Il y a un groupe de fonctions qui sont appelée sur
    des évènements de la souris ou du clavier.
  • 1:58 - 2:03
    Prenons un autre exemple d'animation.
  • 2:03 - 2:13
    Si on veut dessiner une balle colorée en fonction
    des mouvements de la souris...
  • 2:13 - 2:20
    on utilise la fonction "draw", puis "fill()",
    et on dessine "ellipse" à "(mouseX, mouseY, 10, 10)"
  • 2:20 - 2:21
    Essayons ça.... OK. Cool !
  • 2:21 - 2:25
    On a une balle colorée qui est dessinée à l'endroit
    de la souris !
  • 2:25 - 2:30
    OK. Le code du dessin qui fait le dessin,
    va être appelé en permanence, pour toujours,
  • 2:30 - 2:34
    parce qu’on l'a mis dans
    une fonction appelée "draw".
  • 2:34 - 2:38
    Elle sera appelée, même si la souris
    ne bouge pas.
  • 2:38 - 2:41
    Elle est appelée en ce moment,
    alors que je ne bouge pas.
  • 2:41 - 2:47
    Pour faire ça, il y a une façon de faire
    plus efficace.
  • 2:47 - 2:53
    Ce qu'on peut faire, c'est changer la fonction "draw"
    en "mouseMoved" ("souris a bougé").
  • 2:53 - 3:00
    Notre environnement vérifie également si le programme
    définit une fonction appelée "mouseMouved".
  • 3:00 - 3:04
    Si c'est le cas, il va appeler cette fonction
    à chaque fois que la souris bouge.
  • 3:04 - 3:07
    Vous voyez... ça fonctionne toujours.
  • 3:07 - 3:14
    Mais elle n'est plus appelée si la souris ne bouge plus.
    Si j'arrête ma souris, la fonction n'est plus appelée.
  • 3:14 - 3:22
    Avant, avec la fonction "draw", le code était exécuté
    en permanence, même si la souris ne bougeait pas.
  • 3:22 - 3:27
    Maintenant, en utilisant "mouseMouved", le code n'est
    appelé que si la souris bouge.
  • 3:27 - 3:31
    Donc notre programme est bien plus efficace.
  • 3:31 - 3:35
    En général, si votre programme a besoin
    d'agir quand la souris bouge,
  • 3:35 - 3:40
    il est meilleur de mettre le code
    dans la fonction "mouseMouved"
    au lieu d'utiliser la fonction "draw".
  • 3:40 - 3:44
    Il y a un paquet de fonctions magiques
    comme "mouseMouved".
  • 3:44 - 3:47
    Il y a "mousePressed", "mouseReleased",
    "keyPressed",...
  • 3:47 - 3:50
    Lisez la documentation à propos de ces fonctions.
    Elles vous serviront !
  • 3:50 - 3:55
    Le point important, ici, c'est que si vous voulez
    utiliser une fonction magique,
  • 3:55 - 3:57
    appelez-la comme il faut !
  • 3:57 - 4:01
    Si vous ne voulez pas l'utiliser,
    appelez vos fonctions autrement.
Title:
Magic Functions (Video Version)
Description:

more » « less
Video Language:
English
Duration:
04:02
Christophe Noblanc edited French subtitles for Magic Functions (Video Version)

French subtitles

Revisions