首页 > 代码库 > Quick 3.3 final 加载ccs的变化

Quick 3.3 final 加载ccs的变化

1,用self._topUIWidget = ccs.GUIReader:getInstance():widgetFromJsonFile("mapTopUI.json")就还是用的以前c++的那套,时间机制和现有的quick不兼容。

所以得用

local node = cc.uiloader:load("testPanel.json")
self:addChild(node,0)

button的监听addTouchEventListener已经不能使用了

换为了

local button = cc.uiloader:seekNodeByName(self,"Button")
   button:onButtonClicked(function(event)
   print("click")
end)

吞噬事件来实现面板弹出遮挡住下面的不响应事件只能在新的quick时间机制下用。

如果用旧的ccs那套东西,只能让root设置为可响应

注意ccs和quick3.3 final不兼容,尽量只用一种。

按钮一张图片下点击不变大了。

local ShopPanel = require("src.app.scenes.ShopPanel")local MainScene = class("MainScene", function()    return display.newScene("MainScene")end)function MainScene:ctor()--    self._topUIWidget = ccs.GUIReader:getInstance():widgetFromJsonFile("testPanel.json");--    self:addChild(self._topUIWidget,0)    local node = cc.uiloader:load("testPanel.json")    self:addChild(node,0)    --    local function touchEvent(sender,eventType)--        if eventType == ccui.TouchEventType.ended then--            print("clicked");--        end--    end        local button = cc.uiloader:seekNodeByName(self,"Button")    button:onButtonClicked(function(event)        print("click")    end)        local label = cc.uiloader:seekNodeByName(self,"fntLabel")    label:setString(60);        local AtlasLabel = cc.uiloader:seekNodeByName(self,"AtlasLabel")    AtlasLabel:setString(60);        local listView = cc.uiloader:seekNodeByName(self,"ListView")    --    addTouchEventListener已经不能使用了--    local function touchEvent(sender,eventType)--        if eventType == ccui.TouchEventType.ended then--            print("click");--        end--    end--    local button = cc.uiloader:seekNodeByName(self,"Button_2")--    button:addTouchEventListener(touchEvent)            local p = ShopPanel.new()    self:addChild(p,20)endfunction MainScene:addHomebtnquick()    self._homeBtn = cc.ui.UIPushButton.new({normal="ItemSelect.png"})        :onButtonClicked(function()            print("homebtn click")        end)        :addTo(self)        :pos(display.cx,display.cy)endfunction MainScene:onEnter()endfunction MainScene:onExit()endreturn MainScene

panel:代码

local ShopPanel = class("ShopPanel",function()    return display.newColorLayer(cc.c4b(255,255,255,128))end)function ShopPanel:ctor()    --    self:initUI()    self:addTouch()endfunction ShopPanel:addTouch()    self:setTouchEnabled(true)    self:setTouchSwallowEnabled(true)    --[[因为暂停层的图片是覆盖在游戏层上面的,    如果我们不把游戏层的触摸事件拦截的话,会触发游戏层的触摸事件。    addTouch就是为了在暂停层拦截掉所有的触摸事件。widget的root要设置成可交互]]    self:addNodeEventListener(cc.NODE_TOUCH_EVENT,function(event)         dump(event)    end)endfunction ShopPanel:initUI()        self.lv = cc.ui.UIListView.new {        -- bgColor = cc.c4b(200, 200, 200, 120),        viewRect = cc.rect(0, 0, 420, 380),        direction = cc.ui.UIScrollView.DIRECTION_VERTICAL}--        :onTouch(handler(self, self.touchListener))        :addTo(self)    -- add items    for i=1,8 do        local item = self.lv:newItem()        local content = cc.ui.UILabel.new(            {text = "点击删除它DE"..i,                size = 20,                align = cc.ui.TEXT_ALIGN_CENTER,                color = display.COLOR_WHITE})                        item:addContent(content)        item:setItemSize(400, 80)        self.lv:addItem(item)    end    self.lv:reload()    endreturn ShopPanel

 

Quick 3.3 final 加载ccs的变化