MainMenuView.lua 2.67 KB
local MainMenuView = dialog.uinode("ui/MainMenuLayer.csb",import(".BaseView"))

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

function MainMenuView:show(pos,onKeypadDown,onLeftFun,onRightFun,onCloseFun)
    local scene = cc.Director:getInstance():getRunningScene()
    local inst = MainMenuView:create();
    scene:addChild(inst, dialog.ZORDER_APP);

    inst:setPosition(pos);
    inst.onKeypadDownFun = onKeypadDown;
    inst.onLeftFun = onLeftFun;
    inst.onRightFun = onRightFun;
    inst.onCloseFun = onCloseFun;
    inst:init();

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

    return inst;
end

function MainMenuView:init()
    self.panel = self:getChildByName("panel");

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

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

    self.nodes = {};
    self.nodes[1] = {self.btn_mail};
    self.nodes[2] = {self.btn_free};

    self.nodeIndex = 1;
    self.selectedIndex = 1;
    self:updateSelectedState();
end

function MainMenuView:onFree()
    if not UserModel.isLogin  then
        Alert.showOne(strings.msg_1002);
        return;
    end
    local reciever = require("app.views.view.FreeView"):show();
    local scene = cc.Director:getInstance():getRunningScene();
    scene.keypadManager:addKeypadReceiver(reciever);
end

--邮件
function MainMenuView:onMail()
    if not UserModel.isLogin  then
        Alert.showOne(strings.msg_1002);
        return;
    end

    local reciever = require("app.views.view.MailView"):show();
    local scene = cc.Director:getInstance():getRunningScene();
    scene.keypadManager:addKeypadReceiver(reciever);
end

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

--上键处理函数
function MainMenuView:onKeypadDown()
    if self.nodeIndex < #self.nodes then
        MainMenuView.super.onKeypadDown(self);
    else
        if self.onKeypadDownFun then
            self.onKeypadDownFun();
        end
    end
end

--左键处理函数
function MainMenuView:onKeypadLeft()
    if self.onLeftFun then
        self.onLeftFun();
    end
end

function MainMenuView:onKeypadRight()
    if self.onRightFun then
        self.onRightFun();
    end
end

return MainMenuView