Skip to content

Commit b2fddb9

Browse files
committed
fixed sound inconsistencies by using howler.js
1 parent d9ee0a5 commit b2fddb9

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

index.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ <h5>Slide the tiles to correct the picture!</h5>
4545
--><div class="tile row3 col3" id="9"></div><!--
4646
--></div><!--
4747
--></div>
48+
49+
50+
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.1/howler.min.js" integrity="sha512-L6Z/YtIPQ7eU3BProP34WGU5yIRk7tNHk7vaC2dB1Vy1atz6wl9mCkTPPZ2Rn1qPr+vY2mZ9odZLdGYuaBk7dQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
4851
<script src="script.js"></script>
4952
</body>
5053
</html>

script.js

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -158,11 +158,9 @@ function _() {
158158
document.getElementById("time").innerHTML = displayTime(Math.floor((new Date().getTime() - timeStart)/1000));
159159
}, 250);
160160

161-
// dodgy way to play the sound while another is playing
162-
const sound1 = new Audio('media/slide.wav');
163-
const sound2 = new Audio('media/slide.wav');
164-
const sound3 = new Audio('media/slide.wav');
165-
const sound4 = new Audio('media/slide.wav');
161+
const sound = new Howl({
162+
src: ['media/slide.wav']
163+
});
166164

167165
document.querySelectorAll(".tile").forEach( tile => {
168166
tile.addEventListener("click", () => {
@@ -172,7 +170,7 @@ function _() {
172170

173171
if (row < 3) {
174172
if (document.getElementById("row"+String(row + 1)).children[col].className.includes("blank")) {
175-
sound1.play();
173+
sound.play();
176174
tile.className += " down";
177175
setTimeout(() => {
178176
document.getElementById("row"+String(row + 1)).children[col].className = tile.className.replace(" down", "");
@@ -185,7 +183,7 @@ function _() {
185183
}
186184
} if (row > 1) {
187185
if (document.getElementById("row"+String(row - 1)).children[col].className.includes("blank")) {
188-
sound2.play();
186+
sound.play();
189187
tile.className += " up";
190188
setTimeout(() => {
191189
document.getElementById("row"+String(row - 1)).children[col].className = tile.className.replace(" up", "");
@@ -198,7 +196,7 @@ function _() {
198196
}
199197
} if (col < 2) {
200198
if (document.getElementById("row"+String(row)).children[col+1].className.includes("blank")) {
201-
sound3.play();
199+
sound.play();
202200
tile.className += " right";
203201
setTimeout(() => {
204202
document.getElementById("row"+String(row)).children[col+1].className = tile.className.replace(" right", "");
@@ -211,7 +209,7 @@ function _() {
211209
}
212210
} if (col > 0) {
213211
if (document.getElementById("row"+String(row)).children[col-1].className.includes("blank")) {
214-
sound4.play();
212+
sound.play();
215213
tile.className += " left";
216214
setTimeout(() => {
217215
document.getElementById("row"+String(row)).children[col-1].className = tile.className.replace(" left", "");

0 commit comments

Comments
 (0)