|
|
- --增减数量组件
- AddNumberComponent = AddNumberComponent or BaseClass(BaseComponent)
- function AddNumberComponent:__init(parent,min_count,max_count,step,curr_count,calc_type, size_delta_x)
- self.size_delta_x = size_delta_x or 253
- self:CreateGameObject(UIType.AddNumberComponent)
- self:InitData(min_count,max_count,step,curr_count,calc_type, size_delta_x)
- end
-
- --num_changed_call_back 加一个改变数量后的回调
- function AddNumberComponent:InitData(min_count,max_count,step,curr_count,calc_type, size_delta_x,num_changed_call_back)
- self.min_count = min_count or 1
- self.max_count = max_count or 1
- self.step = step or 1 --步长
- self.calc_type = calc_type or self.calc_type or 1
- self.num_changed_call_back = num_changed_call_back
- self:SetCurrCount(curr_count or 1)
- end
-
- function AddNumberComponent:LoadSuccess()
- self.reduceBtn = self:GetChild("reduceBtn").gameObject
- self.numberBg = self:GetChild("numberBg").gameObject
- self.numberText = self:GetChild("numberBg/numberText"):GetComponent(typeof(TMPro.TextMeshProUGUI))
- self.addBtn = self:GetChild("addBtn").gameObject
- self.calcBtn = self:GetChild("calcBtn").gameObject
-
- self.transform.sizeDelta = Vector2(self.size_delta_x, 50)
-
- self:InitEvent()
- end
-
- function AddNumberComponent:InitEvent()
- local function onBtnClickHandler(target, x, y)
- if target == self.reduceBtn then
- self:Reduce()
- elseif target == self.addBtn then
- self:Add()
- elseif target == self.calcBtn then
- self:SetCurrCount(self.max_count)
- elseif target == self.numberBg then
- local function call_back(num)
- if self._use_delete_method then
- return
- end
- self:SetCurrCount(num)
- end
- GlobalEventSystem:Fire(EventName.OPEN_CALCULATOR_VIEW, self.max_count, call_back, Vector3(x, y, 0), self.calc_type)
- end
- end
- AddClickEvent(self.reduceBtn,onBtnClickHandler)
- AddClickEvent(self.addBtn,onBtnClickHandler)
- AddClickEvent(self.numberBg,onBtnClickHandler)
- AddClickEvent(self.calcBtn,onBtnClickHandler)
- end
-
- function AddNumberComponent:Reduce()
- self:SetCurrCount(self.curr_count - self.step)
- end
-
- function AddNumberComponent:Add()
- if self.curr_count + self.step > self.max_count then
- self:ShowTipsWord()
- else
- self:SetCurrCount(self.curr_count + self.step)
- end
- end
-
- function AddNumberComponent:SetCurrCount(count)
-
- if self.transform and not IsNull(self.transform) then
- self.curr_count = count
- self.curr_count = math.max(self.curr_count,self.min_count)
- self.curr_count = math.min(self.curr_count,self.max_count)
- if self.calc_type == 12 then--续时界面使用
- self.numberText.text = string.format("%s/%s", self.curr_count, self.max_count)
- else
- self.numberText.text = self.curr_count
- end
- self:Fire(ComponentEvent.AddNumberComponent.CHANGE_COUNT,self.curr_count)
-
- if self.num_changed_call_back then
- self.num_changed_call_back()
- end
- end
- end
-
- function AddNumberComponent:GetCurrCount()
- return self.curr_count
- end
-
- function AddNumberComponent:SetVisibleCalcBtn( flag )
- self.calcBtn:SetActive(flag)
- end
- function AddNumberComponent:SetVisibleBtn( )
- self.reduceBtn:SetActive(false)
- self.addBtn:SetActive(false)
- self.calcBtn:GetComponent("RectTransform").anchoredPosition = Vector2(-18.3,-2)
- self.numberBg.transform.pivot = Vector2(0.5, 0.5)
- local numberBgTra = self.numberBg:GetComponent("RectTransform")
- numberBgTra.offsetMin = Vector2(0,0.5)
- numberBgTra.offsetMax = Vector2(-30,0.5)
- self.numberText.text = "请输入最低战力限制"
- end
- function AddNumberComponent:ShowTipsWord()
- if self.calc_type == 1 then
- Message.show("本次最多购买"..self.max_count.."个")
- elseif self.calc_type == 2 then
- Message.show("本次最多兑换"..self.max_count.."个")
- elseif self.calc_type == 3 then
- Message.show("战力最高设置为"..self.max_count)
- elseif self.calc_type == 4 then
- Message.show("等级最高设置为"..self.max_count.."级")
- elseif self.calc_type == 5 then
- Message.show("本次最多发"..self.max_count.."个")
- elseif self.calc_type == 6 then
- Message.show("本次最多可上架"..self.max_count.."个")
- elseif self.calc_type == 7 then
- Message.show("价格不能超过"..self.max_count)
- elseif self.calc_type == 8 then
- Message.show("本次最多出售"..self.max_count.."个")
- elseif self.calc_type == 9 then
- Message.show("本次最多使用"..self.max_count.."本")
- elseif self.calc_type == 10 then
- Message.show("本次最多可以制作"..self.max_count.."个")
- elseif self.calc_type == 11 then
- Message.show("本次最多合成"..self.max_count.."个")
- elseif self.calc_type == 12 then--续时界面使用
- Message.show("本次最多使用"..self.max_count.."个")
- elseif self.calc_type == 13 then
- Message.show("剩余可选数量不足")
- elseif self.calc_type == 14 then
- Message.show("请先使用免费兑换次数")
- end
- end
- function AddNumberComponent:SetAddBtnOffset(offset)
-
- local temp_pos = self.addBtn.transform.anchoredPosition
- SetAnchoredPosition(self.addBtn.transform, temp_pos.x+offset, temp_pos.y)
-
- local temp_size = self.numberBg.transform.sizeDelta
- SetSizeDelta(self.numberBg.transform, temp_size.x+offset, temp_size.y)
- end
-
- function AddNumberComponent:SetNumberBgOffset(offset)
- local temp_pos = self.numberBg.transform.anchoredPosition
- SetAnchoredPosition(self.numberBg.transform, temp_pos.x, temp_pos.y+offset*0.5)
-
- local temp_size = self.numberBg.transform.sizeDelta
- SetSizeDelta(self.numberBg.transform, temp_size.x, temp_size.y+offset)
- end
-
- --传入组件大小(也就是父节点的大小,不懂用法可以看看其他是怎么用的)
- function AddNumberComponent:SetComponentWidth( width )
- if width then
- self.transform:SetInsetAndSizeFromParentEdge(self.transform.EdgeLeft, 0, width)
- else
- self.transform:SetInsetAndSizeFromParentEdge(self.transform.EdgeLeft, 0, 300)
- end
- end
-
- function AddNumberComponent:SetNumTextColor( color )
- self.numberText.text = HtmlColorTxt( self.numberText.text, color)
- end
|