🎵 الأصوات السحرية – تعلم تشغيل الصوت في JavaScript للأطفال
🎉 أهلاً يا أبطال!
هل تحبون الألعاب التي تصدر أصواتاً ممتعة؟ 🔊 في هذه المقالة سنتعلم كيف نضيف أصواتاً إلى صفحاتنا وألعابنا باستخدام JavaScript. يمكننا تشغيل أصوات عند الضغط على زر، عند انفجار البالونات، أو عند جمع النجوم! 🌟
🔊 ما هو الصوت في JavaScript؟
في JavaScript يمكننا استخدام عنصر Audio
لتشغيل الملفات الصوتية.
يمكننا التحكم بالصوت، مثل: التشغيل، الإيقاف، أو تعديل مستوى الصوت.
الصيغة الأساسية:
let sound = new Audio("اسم_الملف.mp3");
sound.play(); // لتشغيل الصوت
مثال بسيط: عند الضغط على زر يشغل صوت:
🎵 تشغيل صوت عند الضغط على زر
<button id="playBtn">شغّل الصوت 🎶</button>
<script>
let audio = new Audio("pop.mp3"); // تأكد من وجود الملف في نفس المجلد
document.getElementById("playBtn").addEventListener("click", function() {
audio.play();
});
</script>
عند الضغط على الزر، سيصدر الصوت مباشرة. 🎉
🎚️ التحكم في مستوى الصوت
يمكنك تعديل الصوت بين 0 (صامت) و1 (أقصى صوت):
audio.volume = 0.5; // نصف الصوت
يمكنك تجربة قيم مختلفة لتجعل الصوت هادئاً أو قوياً حسب رغبتك.
⏱️ تشغيل الصوت بعد وقت معين
يمكن دمج الصوت مع setTimeout
لتشغيله بعد تأخير:
setTimeout(function() {
audio.play();
}, 2000); // بعد ثانيتين
هنا ينتظر الكمبيوتر ثانيتين ثم يصدر الصوت 🎵⏳.
🎮 لعبة "انفجار البالونات مع الصوت"
لنضيف أصواتاً للبالونات عند انفجارها:
<div id="balloonGame" style="height:200px; border:1px solid black; position:relative;"></div>
<button id="addBalloon">أضف بالون 🎈</button>
<script>
let popSound = new Audio("pop.mp3");
document.getElementById("addBalloon").addEventListener("click", function() {
let balloon = document.createElement("span");
balloon.textContent = "🎈";
balloon.style.position = "absolute";
balloon.style.left = Math.random() * 250 + "px";
balloon.style.top = Math.random() * 150 + "px";
balloon.style.fontSize = "40px";
balloon.addEventListener("click", function() {
popSound.play();
balloon.remove();
});
document.getElementById("balloonGame").appendChild(balloon);
});
</script>
كل مرة تضغط على البالون، يسمع صوت انفجار ممتع! 💥🎈
🎹 لعبة "آلة موسيقية بسيطة"
يمكن للأطفال اللعب بأصوات مختلفة لكل زر:
<button data-sound="C.mp3">C</button>
<button data-sound="D.mp3">D</button>
<button data-sound="E.mp3">E</button>
<script>
let buttons = document.querySelectorAll("button");
buttons.forEach(function(btn) {
btn.addEventListener("click", function() {
let sound = new Audio(btn.dataset.sound);
sound.play();
});
});
</script>
كل زر يصدر نغمة مختلفة، يمكن للأطفال أن يعزفوا موسيقى خاصة بهم! 🎶
🎯 لعبة "أصوات الهدف المتحرك"
في هذه اللعبة، يظهر هدف 🎯 في مكان عشوائي كل ثانيتين. عند الضغط على الهدف، يصدر صوت ويزداد رصيدك!
<div id="targetGame" style="height:200px; border:1px solid black; position:relative;"></div>
<p id="score">النقاط: 0</p>
<script>
let hitSound = new Audio("hit.mp3");
let score = 0;
setInterval(function() {
let target = document.createElement("span");
target.textContent = "🎯";
target.style.position = "absolute";
target.style.left = Math.random() * 250 + "px";
target.style.top = Math.random() * 150 + "px";
target.style.fontSize = "40px";
target.addEventListener("click", function() {
hitSound.play();
score++;
document.getElementById("score").textContent = "النقاط: " + score;
target.remove();
});
document.getElementById("targetGame").appendChild(target);
}, 2000);
</script>
كل هدف تضغطه يعطيك نقطة ويصدر صوت ممتع! 🏆🎯
💣 لعبة "تجنب القنابل مع الصوت"
في هذه اللعبة، تظهر عناصر عشوائية كل ثانية، بعضها نجوم وبعضها قنابل 💣. اضغط على النجوم لكسب النقاط، وإذا ضغطت على قنبلة يصدر صوت تحذيري! ⚠️
<div id="bombGame" style="height:200px; border:1px solid black; position:relative;"></div>
<p id="bombScore">النقاط: 0</p>
<script>
let starSound = new Audio("star.mp3");
let bombSound = new Audio("bomb.mp3");
let points = 0;
setInterval(function() {
let item = document.createElement("span");
let isBomb = Math.random() < 0.3; // 30% احتمال قنبلة
item.textContent = isBomb ? "💣" : "⭐";
item.style.position = "absolute";
item.style.left = Math.random() * 250 + "px";
item.style.top = Math.random() * 150 + "px";
item.style.fontSize = "40px";
item.addEventListener("click", function() {
if (isBomb) {
bombSound.play();
points = Math.max(0, points - 1);
} else {
starSound.play();
points++;
}
document.getElementById("bombScore").textContent = "النقاط: " + points;
item.remove();
});
document.getElementById("bombGame").appendChild(item);
}, 1000);
</script>
الهدف: اضغط على النجوم لتجمع النقاط وتجنب القنابل! ⭐💣🎵
💡 أفكار ممتعة لتجربة الأصوات
- دمج الأصوات مع
setTimeout
لإنشاء مؤثرات متتابعة. - تغيير أصوات العناصر المختلفة في اللعبة (نجوم، كوكيز، بالونات).
- إنشاء لعبة "حفل موسيقي": كل زر أصواته الخاصة وتعمل كآلة موسيقية.
- تجربة دمج
setInterval
لتشغيل أصوات متكررة كإيقاع.
📝 الخلاصة
- في JavaScript، يمكن استخدام Audio
لتشغيل الملفات الصوتية.
- play()
لتشغيل الصوت وpause()
لإيقافه.
- يمكن التحكم بمستوى الصوت باستخدام volume
.
- دمج الأصوات مع DOM، setTimeout وsetInterval يجعل الألعاب أكثر متعة وتفاعلاً.
- الأطفال يمكنهم الآن إنشاء ألعاب صاخبة وملونة مع أصوات رائعة! 🎉🔊