Skip to content

Commit 668a430

Browse files
committed
Widgets.base:reset方法在new初始化时不再尝试执行visble状态更新函数,可能会由于数据初始化顺序导致错误,之后加载场景时还会再刷新一次所以没必要
1 parent 6b915a0 commit 668a430

File tree

1 file changed

+33
-31
lines changed

1 file changed

+33
-31
lines changed

widget.lua

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ function Widgets.base:getInfo()
226226
end
227227
return str
228228
end
229-
function Widgets.base:reset()
229+
function Widgets.base:reset(init)
230230
assert(not self.name or type(self.name)=='string',"[widget].name need string")
231231

232232
assert(type(self.x)=='number',"[widget].x need number")
@@ -304,10 +304,12 @@ function Widgets.base:reset()
304304
if self._visible==nil then
305305
self._visible=true
306306
end
307-
if self.visibleFunc then
308-
self._visible=self.visibleFunc()
309-
elseif self.visibleTick then
310-
self._visible=self.visibleTick()
307+
if not init then
308+
if self.visibleFunc then
309+
self._visible=self.visibleFunc()
310+
elseif self.visibleTick then
311+
self._visible=self.visibleTick()
312+
end
311313
end
312314
end
313315
function Widgets.base:setVisible(bool)
@@ -360,8 +362,8 @@ Widgets.text=setmetatable({
360362
'visibleTick',
361363
},
362364
},{__index=Widgets.base,__metatable=true})
363-
function Widgets.text:reset()
364-
Widgets.base.reset(self)
365+
function Widgets.text:reset(init)
366+
Widgets.base.reset(self,init)
365367
end
366368
function Widgets.text:draw()
367369
if self._text then
@@ -396,8 +398,8 @@ Widgets.image=setmetatable({
396398
'visibleTick',
397399
},
398400
},{__index=Widgets.base,__metatable=true})
399-
function Widgets.image:reset()
400-
Widgets.base.reset(self)
401+
function Widgets.image:reset(init)
402+
Widgets.base.reset(self,init)
401403
assert(not self.k or not (self.w or self.h),"[image].w/h and .k cannot appear simultaneously")
402404
if not self._image then return end
403405

@@ -414,7 +416,7 @@ function Widgets.image:reset()
414416
end
415417
function Widgets.image:setImage(_img)
416418
self.image=_img
417-
self:reset()
419+
self:reset(init)
418420
end
419421
function Widgets.image:draw()
420422
if self._image then
@@ -458,9 +460,9 @@ Widgets.button=setmetatable({
458460
'visibleTick',
459461
},
460462
},{__index=Widgets.base,__metatable=true})
461-
function Widgets.button:reset()
463+
function Widgets.button:reset(init)
462464
if self.textColor==false then self.textColor=self.color end
463-
Widgets.base.reset(self)
465+
Widgets.base.reset(self,init)
464466
if not self.h then self.h=self.w end
465467
assert(self.w and type(self.w)=='number',"[button].w need number")
466468
assert(self.h and type(self.h)=='number',"[button].h need number")
@@ -624,8 +626,8 @@ Widgets.checkBox=setmetatable({
624626
'visibleTick',
625627
},
626628
},{__index=Widgets.base,__metatable=true})
627-
function Widgets.checkBox:reset()
628-
Widgets.base.reset(self)
629+
function Widgets.checkBox:reset(init)
630+
Widgets.base.reset(self,init)
629631

630632
assert(type(self.disp)=='function',"[checkBox].disp need function")
631633
assert(not self.sound_on or type(self.sound_on)=='string',"[checkBox].sound_on need string")
@@ -731,8 +733,8 @@ Widgets.switch=setmetatable({
731733
'visibleTick',
732734
},
733735
},{__index=Widgets.checkBox,__metatable=true})
734-
function Widgets.switch:reset()
735-
Widgets.base.reset(self)
736+
function Widgets.switch:reset(init)
737+
Widgets.base.reset(self,init)
736738

737739
assert(type(self.disp)=='function',"[switch].disp need function")
738740

@@ -887,8 +889,8 @@ local sliderShowFunc={
887889
return floor(S._pos0*100+.5)..'%'
888890
end,
889891
}
890-
function Widgets.slider:reset()
891-
Widgets.base.reset(self)
892+
function Widgets.slider:reset(init)
893+
Widgets.base.reset(self,init)
892894

893895
assert(self.w and type(self.w)=='number',"[slider].w need number")
894896
assert(type(self.numFontSize)=='number',"[widget].numFontSize need number")
@@ -1095,8 +1097,8 @@ Widgets.slider_fill=setmetatable({
10951097
'visibleTick',
10961098
},
10971099
},{__index=Widgets.slider,__metatable=true})
1098-
function Widgets.slider_fill:reset()
1099-
Widgets.base.reset(self)
1100+
function Widgets.slider_fill:reset(init)
1101+
Widgets.base.reset(self,init)
11001102

11011103
assert(self.w and type(self.w)=='number',"[slider_fill].w need number")
11021104
assert(self.h and type(self.h)=='number',"[slider_fill].h need number")
@@ -1216,8 +1218,8 @@ Widgets.slider_progress=setmetatable({
12161218
'visibleTick',
12171219
},
12181220
},{__index=Widgets.slider,__metatable=true})
1219-
function Widgets.slider_progress:reset()
1220-
Widgets.base.reset(self)
1221+
function Widgets.slider_progress:reset(init)
1222+
Widgets.base.reset(self,init)
12211223

12221224
assert(self.w and type(self.w)=='number',"[slider_progress].w need number")
12231225
assert(self.h and type(self.h)=='number',"[slider_progress].h need number")
@@ -1320,8 +1322,8 @@ Widgets.selector=setmetatable({
13201322
'visibleTick',
13211323
},
13221324
},{__index=Widgets.base,__metatable=true})
1323-
function Widgets.selector:reset()
1324-
Widgets.base.reset(self)
1325+
function Widgets.selector:reset(init)
1326+
Widgets.base.reset(self,init)
13251327

13261328
assert(self.w and type(self.w)=='number',"[selector].w need number")
13271329
assert(type(self.list)=='table',"[selector].list need table")
@@ -1493,8 +1495,8 @@ Widgets.inputBox=setmetatable({
14931495
'visibleTick',
14941496
},
14951497
},{__index=Widgets.base,__metatable=true})
1496-
function Widgets.inputBox:reset()
1497-
Widgets.base.reset(self)
1498+
function Widgets.inputBox:reset(init)
1499+
Widgets.base.reset(self,init)
14981500
assert(self.w and type(self.w)=='number',"[inputBox].w need number")
14991501
assert(self.h and type(self.h)=='number',"[inputBox].h need number")
15001502
assert(not self.sound_input or type(self.sound_input)=='string',"[inputBox].sound_input need string")
@@ -1673,8 +1675,8 @@ Widgets.textBox=setmetatable({
16731675
'visibleTick',
16741676
},
16751677
},{__index=Widgets.base,__metatable=true})
1676-
function Widgets.textBox:reset()
1677-
Widgets.base.reset(self)
1678+
function Widgets.textBox:reset(init)
1679+
Widgets.base.reset(self,init)
16781680
if type(self.scrollBarColor)=='string' then self.scrollBarColor=COLOR[self.scrollBarColor] end
16791681
assert(type(self.scrollBarColor)=='table',"[textBox].scrollBarColor need table")
16801682
assert(self.w and type(self.w)=='number',"[textBox].w need number")
@@ -1874,8 +1876,8 @@ Widgets.listBox=setmetatable({
18741876
'visibleTick',
18751877
},
18761878
},{__index=Widgets.base,__metatable=true})
1877-
function Widgets.listBox:reset()
1878-
Widgets.base.reset(self)
1879+
function Widgets.listBox:reset(init)
1880+
Widgets.base.reset(self,init)
18791881
if type(self.scrollBarColor)=='string' then self.scrollBarColor=COLOR[self.scrollBarColor] end
18801882
assert(type(self.scrollBarColor)=='table',"[listBox].scrollBarColor need table")
18811883
assert(not self.sound_click or type(self.sound_click)=='string',"[listBox].sound_click need string")
@@ -2321,7 +2323,7 @@ function WIDGET.new(args)
23212323
errorf("WIDGET.new(args): Illegal argument %s for widget %s",k,t)
23222324
end
23232325
end
2324-
w:reset()
2326+
w:reset(true)
23252327

23262328
return w
23272329
end

0 commit comments

Comments
 (0)