Hi folks. I have a settings screen in my app with just 2 buttons. Music On/Off and Sound On/Off. I can get the audio to turn off when I click them but when i leave the scene and come back the buttons reset to their “on” state and the music remains off. I need some way of saving these button states. Here’s my code…
[code]
module(…, package.seeall)
–====================================================================–
– SCENE: info.lua
–====================================================================–
new = function ()
– Imports
local ui = require ( “ui” )
– Groups
local localGroup = display.newGroup()
– Display Objects
local image = display.newImageRect( “images/titlescreenbg.png”, 480, 360 )
local frame = display.newImageRect( “images/infoScreenBg.png”, 480, 360 )
local backBg = display.newImageRect( “images/backBg.png”, 150, 67 )
local soundOn_btn = display.newImageRect(“images/sound_on.png”,162,35)
local soundOff_btn = display.newImageRect(“images/sound_off.png”,162,35)
local musicOn_btn = display.newImageRect(“images/music_on.png”,162,35)
local musicOff_btn = display.newImageRect(“images/music_off.png”,162,35)
– Functions
function toggleMusicButton(event)
if(event.phase == “ended”) then
if musicOn_btn.isVisible == true then
musicOff_btn.isVisible = true
musicOn_btn.isVisible = false;
print(“Music Off”)
audio.setVolume( 0, { channel=1 } )
else
musicOff_btn.isVisible = false
musicOn_btn.isVisible = true;
print(“Music On”)
audio.setVolume( 1, { channel=1 } )
end
end
end
function toggleSoundButton(event)
if(event.phase == “ended”) then
if soundOn_btn.isVisible == true then
soundOff_btn.isVisible = true
soundOn_btn.isVisible = false;
print(“Sound Off”)
audio.setVolume( 0, { channel=2 } )
else
soundOff_btn.isVisible = false
soundOn_btn.isVisible = true;
print(“Sound On”)
audio.setVolume( 1, { channel=2 } )
end
end
end
– BACK BUTTON FUNCTION
local function backBut(event)
if event.phase == “began” then
display.getCurrentStage():setFocus( event.target)
elseif event.phase == “ended” then
event.target:removeEventListener(“touch”, backBut)
display.getCurrentStage():setFocus(nil)
director:changeScene( “levelselect”, “moveFromBottom” )
end
end
– UI Objects
local backButton = ui.newButton{
defaultSrc = “images/backButton.png”,
defaultX = 90,
defaultY = 36,
overSrc = “images/backButton.png”,
overX = 100,
overY = 40,
onEvent = goBack,
id = “backButton”
}
– Variables
musicOff_btn.isVisible = false
soundOff_btn.isVisible = false
–====================================================================–
– INITIALIZE
–====================================================================–
local initVars = function ()
– Positions
image.x = display.contentWidth/2
image.y = display.contentHeight/2
backBg:setReferencePoint(display.TopRightReferencePoint);
backBg.x = display.contentWidth
backBg.y = display.screenOriginY
backButton:setReferencePoint(display.TopRightReferencePoint);
backButton.x = display.contentWidth - 10
backButton.y = display.screenOriginY + 3
frame.x = display.contentWidth /2
frame.y = display.contentHeight /2
musicOn_btn.x = 330
musicOn_btn.y = display.contentHeight / 2 -25
musicOff_btn.x = 330
musicOff_btn.y = display.contentHeight / 2 -25
soundOn_btn.x = 330
soundOn_btn.y = display.contentHeight / 2 +25
soundOff_btn.x = 330
soundOff_btn.y = display.contentHeight / 2 +25
– Inserts
localGroup:insert(image)
localGroup:insert(frame)
localGroup:insert(backBg)
localGroup:insert(backButton)
localGroup:insert(musicOff_btn)
localGroup:insert(musicOn_btn)
localGroup:insert(soundOff_btn)
localGroup:insert(soundOn_btn)
– Listeners
backButton:addEventListener(“touch”, backBut)
musicOn_btn:addEventListener(“touch”, toggleMusicButton)
musicOff_btn:addEventListener(“touch”, toggleMusicButton)
soundOn_btn:addEventListener(“touch”, toggleSoundButton)
soundOff_btn:addEventListener(“touch”, toggleSoundButton)
end
– Initiate variables
initVars()
– MUST return a display.newGroup()
return localGroup
end
[/code] [import]uid: 79620 topic_id: 23693 reply_id: 323693[/import]
Its a super simple module created by Graham Ranson. just seach for ICE here on the forum and you should find it
[import]uid: 79620 topic_id: 23693 reply_id: 95242[/import]
[import]uid: 122802 topic_id: 23693 reply_id: 105921[/import]