| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- local CacheWidget = class("CacheWidget", function() return ccui.Widget:create() end)
- function CacheWidget:ctor()
- self._widgetConfig = nil
- self._widget = nil
- -- 监听事件;
- self:registerScriptHandler(
- function(state)
- if state == "enter" then
- self:onEnter()
- elseif state == "exit" then
- self:onExit()
- end
- end
- )
- end
- function CacheWidget:InitWidgetConfig(widgetConfig)
- self._widgetConfig = widgetConfig
- -- add by sfy
- self:_InitWidthConfig()
- return true
- end
- function CacheWidget:_InitWidthConfig()
- if self._widgetConfig then
- self._widget = global.WidgetCacheManager:Create(self._widgetConfig)
- self._widget:setCascadeOpacityEnabled(true)
- if not self._widget then
- print("not widget config : ", self._widgetConfig)
- return
- end
- self:addChild(self._widget)
- end
- end
- function CacheWidget:_Clear()
- if self._widget and self._widgetConfig then
- -- 未使用会回收
- global.WidgetCacheManager:Destroy(self._widgetConfig, self._widget)
- self._widget:removeFromParent()
- self._widget = nil
- self._widgetConfig = nil
- end
- end
- function CacheWidget:onEnter()
- self:Enter()
- end
- function CacheWidget:onExit()
- self:Exit()
- end
- function CacheWidget:Enter()
- if self._entered then
- return
- end
- if not self._widget then
- self:_InitWidthConfig()
- end
- if self._widget then
- self._entered = true
- self:OnEnter()
- end
- end
- function CacheWidget:Exit()
- if self._widget then
- self:OnExit()
- self._entered = false
- self:_Clear()
- end
- end
- function CacheWidget:OnEnter()
- end
- function CacheWidget:OnExit()
- end
- return CacheWidget
|