neft
Version:
JavaScript. Everywhere.
42 lines (30 loc) • 918 B
text/coffeescript
'use strict'
module.exports = (impl) ->
DATA =
bindings: null
elem: null
DATA: DATA
createData: impl.utils.createDataCloner DATA
create: (data) ->
self = @
elem = data.elem = document.createElement 'audio'
elem.setAttribute 'preload', 'auto'
elem.addEventListener 'ended', ->
self.running = false
return
setAmbientSoundSource: (val) ->
if rsc = impl.Renderer.resources.resolve(val)
val = rsc
.elem.setAttribute 'src', val
return
setAmbientSoundLoop: (val) ->
.elem.setAttribute 'loop', val
return
startAmbientSound: (val) ->
.elem.play()
if .elem.readyState is .elem.HAVE_ENOUGH_DATA
.elem.currentTime = 0
return
stopAmbientSound: (val) ->
.elem.pause()
return