我很难在我目前正在开发的游戏中播放声音。
我需要在动画之后播放声音,但是当我尝试调用 sound.play() 时。
浏览器声明您只能使用人类手势播放声音?
谁有一些技巧,请在这里分享。谢谢。
已添加 =============
我在移动设备中遇到了这个问题。
我很难在我目前正在开发的游戏中播放声音。
我需要在动画之后播放声音,但是当我尝试调用 sound.play() 时。
浏览器声明您只能使用人类手势播放声音?
谁有一些技巧,请在这里分享。谢谢。
已添加 =============
我在移动设备中遇到了这个问题。
Sample of your code will be helpful, but this question is tagged jQuery
so I assume you are looking for solution for this library. And jQuery.animate
takes callback and runs it after animation is done, look:
$( "#element").animate({
opacity: 0.25
}, 5000, function() {
// animation is complete
// play your sound here
});
You can find more examples in documentation.
如果您使用 jQuery 进行动画处理,@Remek 的答案是正确的,但您还标记了 TweenJS,因此您可以使用call
,它将函数调用排队到 TweenJS 队列中。
createjs.Tween.get(obj)
.to({x:1000}, 3000, createjs.Ease.quadOut)
.call(function(tween) {
createjs.Sound.play("soundId");
});
您可以在 Tween 队列中或最后使用呼叫。请注意,补间也派发事件,但只有“更改”事件,而不是“完成”事件,因为补间可以循环、反转和不断链接以添加额外的动画,因此它们并不真正“完成”。这就是该call
方法存在的原因。
该call
方法还接受参数和函数范围。
http://www.createjs.com/docs/tweenjs/classes/Tween.html#method_call
关于您关于“人类手势”的问题,这主要适用于移动平台,您必须单击某些东西才能播放声音(这会解锁音频上下文,因此只需发生一次)。最新的 SoundJS 会自动为您处理,当您按下时会自动播放空声音(即使是滚动)。请注意,使用滚动来执行此操作已被弃用,因此用户可能必须“单击/点击”某些东西才能使其正常工作 - 但在这种情况下 SoundJS 将为您处理解锁。
干杯。