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)
end

function MainScene:addHomebtnquick()
    self._homeBtn = cc.ui.UIPushButton.new({normal="ItemSelect.png"})
        :onButtonClicked(function()
            print("homebtn click")
        end)
        :addTo(self)
        :pos(display.cx,display.cy)
end

function MainScene:onEnter()
end

function MainScene:onExit()
end

return MainScene

panel:代码

local ShopPanel = class("ShopPanel",function()
    return display.newColorLayer(cc.c4b(255,255,255,128))
end)

function ShopPanel:ctor()
    --    self:initUI()
    self:addTouch()
end

function ShopPanel:addTouch()
    self:setTouchEnabled(true)
    self:setTouchSwallowEnabled(true)
    --[[因为暂停层的图片是覆盖在游戏层上面的,
    如果我们不把游戏层的触摸事件拦截的话,会触发游戏层的触摸事件。
    addTouch就是为了在暂停层拦截掉所有的触摸事件。widget的root要设置成可交互]]
    self:addNodeEventListener(cc.NODE_TOUCH_EVENT,function(event)
        dump(event)
    end)
end

function 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()

end

return ShopPanel
时间: 2024-11-03 01:22:57

Quick 3.3 final 加载ccs的变化的相关文章

cocos2d-x的lua脚本加载CocostudioUI两种方式

前言 当前版本使用的是quick cocos2dx lua 3.3.UI使用cocostudio编辑器.我们在程序里面可以使用两种方式进行解析UI.开始的时候用的是quick的方法,结果遇到了坑(百分比控件布局,你们可以自己试一下什么效果). 我在后面简单提一下,不过不是自己遇到的坑,就不知道有多坑. 一.quick使用cocostudio 1.加载 local uiNode = cc.uiloader:load("TestUI.json") self:addChild(uiNode)

Android4.4 Telephony流程分析——联系人(Contact)列表缩略图的加载过程

本文代码以MTK平台Android 4.4.2为分析对象,与Google原生AOSP有些许差异,请读者知悉. Android联系人列表的缩略图加载主要用到ContactPhotoManager.java这个类,这是个抽象类,实现了ComponentCallbacks2接口,其内部有个它的具体实现类,叫ContactPhotoManagerImpl,ContactPhotoManagerImpl继承了ContactPhotoManager并实现了android.os.Handler.Callbac

quick-cocos2d-x 加载进度条的学习

先上quick代码: 1 --[[创建扇形的进度加载条]] 2 3 --创建进度动作的Action(进度时间,最终比例) 4 local to1 = CCProgressTo:create(1, 100) 5 6 --传入作为进度条用的精灵,创建ProgressTimer 7 local pTimer = CCProgressTimer:create(CCSprite:create(s_pPathSister1)) 8 pTimer:setType(kCCProgressTimerTypeRad

简单实用的进度条加载组件loader.js

本文提供一个简单的方法实现一个流程的进度条加载效果,以便在页面中可以通过它来更好地反馈耗时任务的完成进度.要实现这个功能,首先要考虑怎样实现一个静态的进度条效果,类似下面这样的: 这个倒是比较简单,两个div即可,bootstrap官方就提供有多种主题的进度条组件.如果自己要用,参照下别人的代码,写成自己的风格即可,实际上也非常的好理解: .progress { height: 20px; background-color: #f5f5f5; border-radius: 4px; box-sh

final,类的自动加载,命名空间

final是干什么的一般是为了防止父类的一个方法被重写如果父类中的方法被声明为 final,则子类无法覆盖该方法.如果一个类被声明为 final,则不能被继承. Note: 属性不能被定义为 final,只有类和方法才能被定义为 final. 类的自动加载类的自动加载是指,在外面的页面中,并不需要去"引入"类文件,但是程序会在需要的时候动态加载需要的类文件. spl_autoload_register() 函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(in

访问修饰限定符的简单总结、final/abstruct/interface对类的限制、自动加载机制、序列化与反序列化【数据持久化和对象的序列化问题】、对象的拷贝(按引用是因为对象标识)和克隆(__clone方法中的this指向)

1.针对访问修饰限定符的理解只需要两点:(1)针对的是类的概念和访问代码的位置来确定是否能够访问(2)对访问修饰限定符的使用时只需要对该成员的使用场景注意即可[也就是内部,继承类,外部进行访问的权限] 不需要对内部进行太多理解[需要对php底层理解时进行理解] [重点][用途]通过访问修饰限定符将内部成员的权限合理的限制,然后再使用公共接口来调用这个基本服务,保证外部不能访问其内部的构件[这样既能够通过类内的设置,将内部的功能实现更好的限制,只有最外层的接口可以正常被访问到,而不了解内部的业务]

Final关键字和类的自动加载

Final关键字: 父类中的方法被声明为 final,则子类无法覆盖该方法.如果一个类被声明为 final,则不能被继承. 一般是为了防止父类的一个方法被重写.只能用来定义类和定义方法, 不能使用final这个关键字来定义成员属性,因为final是常量的意思,我们在PHP里定义常量使用的是define()函数,所以不能使用final来定义成员属性.1.被final修饰的类不可以被继承 2.被final修饰的方法不可以被重写 3.被final修饰的变量不可以被改变被final修饰不可变的是变量的引

PHP面向对象——Final关键字 类的自动加载

1.Final关键字 含义:最终的,最后的 作用: 1.如果父类中的方法被声明为 final,则子类无法覆盖该方法. 如果一个类被声明为 final,则不能被继承. 2.属性不能被定义为 final,只有类和方法才能被定义为 final. 用法:直接在类或者方法前加final关键字. --------------------------------------------------------------------------- 2.类的自动加载 含义: 1.解决代码重复,把重复的代码写在一

PHP的 Final关键字、类(文件)的加载和命名空间

** Final.类(文件)的加载和命名空间 1.final 关键字-----终态的.最终的 final 关键字用于修饰类和方法:修饰的类不能被继承,修饰的函数方法(public)在子类中不能被重载. 如果父类中的方法被声明为 final,则子类无法覆盖该方法.如果一个类被声明为 final,则不能被继承. 类使用 final 关键字的例子: final class Person{ ...... } final 定义的类被继承时会提示如下错误: Fatal error: Class Studen