1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| // ---------------------
// audio-keyboard
// Lettres et syllabes
// ---------------------
'use strict';
// Définition de l objet
var audio_keyboard = {
init:function()
{
// -----------------
// fichier mp3
// IMPORTANT :Les fichiers mp3 doivent avoir le meme nom que la lettre/syllabe à jouer
// lettres : a.mp3, l.mp3, ch.mp3,...
// syllabes : al.mp3, la.mp3, cha.mp3,...
// ----
// dossier des musiques (ne pas oublier le / à la fin)
this.rep_music = 'musics/';
// -----------------
// Définition des variables
this.lettre = '';
this.arr_syllabe = []; // array (à cause du "ch", qui va donner une syllabe de plus de 2 lettres)
this.chr_syllabe = ''; // chaine (ex. : 'la', 'cha',...)
// ----
this.nbr = 2; // nombre de lettre par syllabe (2 par défaut)
// ----
// faire ici la liste de tous les sons de syllabes (qui ont un fichier mp3)
this.o_son_syllabe = []; // array
// syllabes de 2 "lettres" (ex.: 'l+a', 'ch+a',...)
this.o_son_syllabe[2] = [
'la','al',
'fa','af',
'ma','am',
'cha','ach', // 'ch'+'a'
// .....
];
// ----
// syllabes de 3 "lettres" (ex.: 'l+a+c', 'ch+a+r',...)
this.o_son_syllabe[3] = [
'lac','bal',
'far','baf',
'mar','ram',
'char','arch', // 'ch'+'a'+'r'
// .....
];
// ----
this.son = '';
// ----
// affichage à l'écran
this.affiche_son = document.querySelector('#affiche-son');
// -----------------
// changer le nombre de lettres
var ceci = this;
this.input_nbr = document.querySelector('#input-nbr');
this.input_nbr.addEventListener('change', function () {
ceci.nbr = this.value; // attention : this fait ici référence à l'input !
});
// -----------------
// click sur une TOUCHE (ECRAN)
var ceci = this;
this.touches = document.querySelectorAll('#audio-keyboard > div > div');
this.touches.forEach(function (touche) {
touche.addEventListener('click', function () {
// ------
ceci.lettre = touche.dataset.ltr; // on récupère la lettre dans data-let="x"
ceci.arr_syllabe.push(ceci.lettre); // ajoute la lettre à arr_syllabe
// ------
// lettre
ceci.play_lettre();
// syllabe
if( ceci.arr_syllabe.length==ceci.nbr )
{
ceci.play_syllabe();
ceci.arr_syllabe = [];
}
});
});
// -----------------
},
// -----------------
play_lettre:function()
{
this.son = this.lettre+'.mp3';
this.playSound( this.son );
// this.affiche_son.textContent = this.lettre; // affiche à l'écran
var chr_syllabe_sum = this.arr_syllabe.join('+'); // on concatène
this.affiche_son.textContent = chr_syllabe_sum;
},
// -----------------
play_syllabe:function()
{
var ceci = this;
this.chr_syllabe = this.arr_syllabe.join(''); // on concatène
var chr_syllabe_sum = this.arr_syllabe.join('+'); // on concatène
if( this.o_son_syllabe[this.nbr].includes(this.chr_syllabe) )
{
this.son = this.chr_syllabe+'.mp3';
setTimeout(function()
{
// ceci.affiche_son.textContent = ceci.chr_syllabe;
ceci.affiche_son.textContent = chr_syllabe_sum+' = '+ceci.chr_syllabe;
ceci.playSound(ceci.son);
}, 1200); // on décale 1.2 secondes (le temps d'entendre la LETTRE précédente) : A ADAPTER
}
},
// -----------------
playSound:function()
{
// var audio = new Audio( this.rep_music+this.son ); // à remettre en PROD
// audio.play(); // à remettre en PROD
console.log( this.son );
}
};
// -------------------
// au chargement de page
window.addEventListener('load', function(){
audio_keyboard.init();
});
// ------------------- |
Partager