finished code
[lua]–*******************************************************
function cNaggerSounds:getHandle(psFolder, paSounds)
local i, sPath, sFile
–choose a random direction
i = math.random( table.maxn(paSounds))
sFile = paSounds[i]
sPath = psFolder…"/"…sFile
–play the file
return audio.loadSound(sPath)
end
–*******************************************************
function cNaggerSounds:playRandom()
local i
– mutex
if self.playing then return end
self.playing = true
– load the sound
self.handle = self:getHandle(self.data.folders.directions, self.data.directions)
– use closures to pass parameters and play
fnCallback = function(poEvent) self:onComplete1(poEvent) end
audio.play(self.handle, {onComplete=fnCallback})
end
–*******************************************************
function cNaggerSounds:onComplete1(poEvent)
local i, sPath, sFolder, sFile, oHandle, fnCallback
– clear out the previous sound
audio.dispose(self.handle)
self.handle = nil
– load the sound
self.handle = self:getHandle(self.data.folders.nags, self.data.nags)
– use closures to pass parameters
fnCallback = function(poEvent) self:onComplete2(poEvent) end
audio.play(self.handle, {onComplete=fnCallback})
end
–*******************************************************
function cNaggerSounds:onComplete2(poEvent)
audio.dispose(self.handle)
self.handle = nil
self.playing = false
end[/lua] [import]uid: 74338 topic_id: 20594 reply_id: 80941[/import]