AlertTwoView.lua 2.07 KB
local AlertTwoView = dialog.uinode("ui/AlertLayer.csb",import(".BaseView"))

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

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

    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.msg = msg;
    inst.okFun = okFun;
    inst.cancelFun = cancelFun;
    inst.selectedIndex = selectedIndex;

    inst:getChildByName("panel"):getChildByName("txt"):setString(msg);

    inst:init();

    return inst;
end

function AlertTwoView:init()
    self:setContentSize(cc.size(display.width,display.height));
    ccui.Helper:doLayout(self);

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

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

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

    self.nodes[1] = {btn_ok,btn_cancel};
    print("alert:"..self.selectedIndex)
    self:updateSelectedState();
end

function AlertTwoView:onOk()
    if self.okFun then
        self.okFun();
    end
    self:close();
end

function AlertTwoView:onCancel()
    if self.cancelFun then
        self.cancelFun();
    end
    self:close();
end

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

return AlertTwoView