Извинения за отсутствие скрипки; просто пытаясь понять основы SoundManager 2 и терпеть неудачу.
Почему это не работает:
<script>
soundManager.setup({
url: 'swf/',
preferFlash: false,
onready: function() {
// Ready to use; soundManager.createSound() etc. can now be called.
}
});
</script>
<script>
$(document).ready(function() {
soundManager.createSound({
id: 'mySound',
url: 'audio/sound.mp3',
autoLoad: true,
autoPlay: true,
volume: 50
});
mySound.play();
});
</script>
Но это делает:
<script>
soundManager.setup({
url: 'swf/',
preferFlash: false,
onready: function() {
soundManager.createSound({
id: 'mySound',
url: 'audio/mySound.mp3',
autoLoad: true,
autoPlay: true,
volume: 50
});
mySound.play();
}
});
</script>
Я не понимаю... вообще. Должен ли загружаться каждый звук в onready()? И если да, то как это отдаленно полезно для 90% случаев использования? Я должен что-то упустить. Примеры, которые они предоставляют, кажутся такими же легкими, что и в моем коде:
soundManager.createSound({
id: 'mySound2',
url: 'audio/mySound2.mp3'
});
soundManager.play('mySound2');
Но это не работает. Зачем?
Из комментариев
API надлежащим образом должен сделать что-то на intialize и до того, как он будет готов к запуску. Если вы вызываете createSound до того, как API завершит загрузку, произойдет ошибка. Вместо использования $(func..)
качестве отправной точки вы можете попробовать использовать onready и вызвать $(functio..
from inthere
Я сделал нерабочую скрипку, что я имею в виду: http://jsfiddle.net/YdC8j - Я не работаю с soundmanager. Я просто догадываюсь
createSound
до завершения загрузки API, произойдет ошибка. Вместо использования$(func..)
качестве отправной точки, вы можете попробовать использовать onready и вызвать$(functio..
from inthere).onready
тогда, если он не загружен вовремя? Вы в основном говорите, что я не могу? Если это так, я действительно не понимаю смысла использования SM2.