SettingView.lua 3.14 KB
local SettingView = dialog.uinode("ui/SettingLayer.csb",import(".BaseView"))

function SettingView:ctor()
    SettingView.super.ctor(self);
end

function SettingView:show(selectedIndex)
    local scene = cc.Director:getInstance():getRunningScene()
    local inst = SettingView:create();
    scene:addChild(inst, dialog.ZORDER_POP);

    inst:setContentSize(cc.size(display.width,display.height));
    ccui.Helper:doLayout(inst);

    local panel = inst:getChildByName("panel");
    panel:setScale(0.5);
    local scaleTo = cc.ScaleTo:create(0.2,1);
    panel:runAction(scaleTo);

    selectedIndex = selectedIndex or 1;
    inst.selectedIndex = selectedIndex;

    inst:init();

    UmengHelper.onEvent("setting");

    return inst;
end

function SettingView:init()
    self.btn_music = self:getChildByName("panel"):getChildByName("btn_music");
    self.btn_music.fn = handler(self,self.onMusicClick);
    self.btn_music:addTouchEventListener(function(ref,type) self:onButtonClick(ref,type, self.btn_music.fn)end);

    self.btn_effect = self:getChildByName("panel"):getChildByName("btn_effect");
    self.btn_effect.fn = handler(self,self.onEffectClick);
    self.btn_effect:addTouchEventListener(function(ref,type) self:onButtonClick(ref,type, self.btn_effect.fn)end);

    local btn_close = self:getChildByName("panel"):getChildByName("btn_close");
    btn_close.fn = handler(self,self.onClose);
    btn_close:addTouchEventListener(function(ref,type) self:onButtonClick(ref,type, btn_close.fn)end);

    if SoundManager.isBackgroundMusic then
        self.btn_music:loadTextureNormal("res/common/bg_on.png");
        self.btn_music:loadTexturePressed("res/common/bg_on.png");
    end

    if SoundManager.isEffect then
        self.btn_effect:loadTextureNormal("res/common/bg_on.png");
        self.btn_effect:loadTexturePressed("res/common/bg_on.png");
    end

    self.nodes[1] = {btn_close};
    self.nodes[2] = {self.btn_music,self.btn_effect};
    
    self.nodeIndex = 2;
    self:updateSelectedState();
end

function SettingView:onMusicClick()
    if SoundManager.isBackgroundMusic then
        self.btn_music:loadTextureNormal("res/common/bg_off.png");
        self.btn_music:loadTexturePressed("res/common/bg_off.png");
        SoundManager.setIsBackgroundMusic(false);
        SoundManager.stopMusic();
    else
        self.btn_music:loadTextureNormal("res/common/bg_on.png");
        self.btn_music:loadTexturePressed("res/common/bg_on.png");
        SoundManager.setIsBackgroundMusic(true);
        SoundManager.playMusic();
    end
end

function SettingView:onEffectClick()
    if SoundManager.isEffect then
        self.btn_effect:loadTextureNormal("res/common/bg_off.png");
        self.btn_effect:loadTexturePressed("res/common/bg_off.png");
        SoundManager.setIsEffect(false);
    else
        self.btn_effect:loadTextureNormal("res/common/bg_on.png");
        self.btn_effect:loadTexturePressed("res/common/bg_on.png");
        SoundManager.setIsEffect(true);
    end
end

function SettingView:onClose()
    self:close();
end

--返回键处理函数
function SettingView:onKeypadBack()
    if self.cancelFun then
        self.cancelFun();
    end
    self:close();
end

return SettingView