luaUI 2
来源:互联网 发布:Ht.js 编辑:程序博客网 时间:2024/04/30 12:05
1.遍历 layer 的 children
local function allChildren( parent )local nodes = parent:getChildren()if nodes thenfor idx=1, nodes:count() dolocal chilNode = nodes:objectAtIndex(idx - 1)local node = tolua.cast(chilNode, "CCSprite")node:setOpacity(0)allChildren(node)endendend
2.基础控件
local function addSprite(img, pos, scale, zorder, parent)local sprite = CCSprite:createWithTexture( CCTextureCache:sharedTextureCache():addImage(img) )sprite:setScale(scale)sprite:setPosition(pos)parent:addChild(sprite, zorder)return spriteendlocal function addLabel(text, type, size, pos, color, parent, zorder)local label = CCLabelTTF:create(text, type, size);label:setPosition(pos)label:setColor(color)parent:addChild(label, zorder)return labelendlocal function addMenu(imgn, imgs, imgd, callback, pos, scale, parent, zorder) local sNormal = CCSprite:createWithTexture(CCTextureCache:sharedTextureCache():addImage(imgn)) local sSelected = CCSprite:createWithTexture(CCTextureCache:sharedTextureCache():addImage(imgs)); local sDisabled = CCSprite:createWithTexture(CCTextureCache:sharedTextureCache():addImage(imgd)); local item = CCMenuItemSprite:create(sNormal, sSelected, sDisabled) item:registerScriptTapHandler(callback) item:setPosition(pos) item:setScale(scale) local menu = CCMenu:create() menu:addChild(item) menu:setPosition(CCPoint(0, 0)) parent:addChild(menu, zorder) return itemend
3.ScrollView
local function addScroll( size, csize, parent)local scroll = CCScrollView:create(size) scroll:setDirection(kCCScrollViewDirectionVertical) parent:addChild(scroll) scroll:setContentOffset(CCPoint(0, 0)) local sLayer = CCLayerColor:create(ccc4(120, 0, 0, 0), size.width, sLayerH) scroll:addChild(sLayer)scroll:setContentSize(CCSize(size.width, sLayerH)) —一般和laye大小相等end
3.定时方法
local function scheduleT(dt) —dt接近 2print('scheduleT '..dt)endlocal scheduler = CCDirector:sharedDirector():getScheduler()local schedulerEntry = scheduler:scheduleScriptFunc(scheduleT, 2.0, false)scheduler:unscheduleScriptEntry(schedulerEntry)
4.触屏事件
local function touchFunc(eventType, x, y)if eventType == CCTOUCHBEGAN then-- print('tttt '..x[1]) 多点触控-- print('tttt '..x[2])print('tttt '..x)return true--return true CCTOUCHBEGAN 事件不会在向上传递, 上层按钮可能不好使elseif eventType == CCTOUCHMOVED thenelseif eventType == CCTOUCHENDED thenendendpLayer = CCLayerColor:create(ccc4(0, 0, 0, 180), winSize.width, winSize.height)runScene:addChild(pLayer, 99, 1010)pLayer:setTouchEnabled(true)-- pLayer:setTouchMode(kCCTouchesAllAtOnce) 多点触控pLayer:setTouchMode(kCCTouchesOneByOne)pLayer:setTouchPriority(kCCMenuHandlerPriority - 103)pLayer:registerScriptTouchHandler(touchFunc)
1.layer 可以通过 setTouchPriority(kCCMenuHandlerPriority - 10),设置的层比按钮的层低,在begin的时候 return true可以屏蔽下面的按钮事件,
按钮事件主要在begin里响应,move 和 end 不会触发按钮事件。
2.Sprite 不能注册触摸事件 registerScriptTouchHandler
3.一个 scne 上多个layer 注册了触摸事件。
begin:setTuchPriority 最低的先响应,有一层返回 true 了高层的不会响应。
move:那层begin返回true那层的move响应,与setTuchPriority无关,没有layer的begin返回true,move不会触发
end: 同move
注意:如果layer的begin没有返回true,move和end不会响应
4.move事件响应
local function touchz(eventType, x, y)print('touchz1 '..x)
if eventType == CCTOUCHBEGAN then
return true
elseif eventType == CCTOUCHMOVED then
print('touchz2 move '..x)
elseif eventType == CCTOUCHENDED then
end
end
移动时候不会在输出 print('touchz1 '..x),move时候只调用print('touchz2 move '..x)。
5.进度条
local function addProgress(img, direc, percent, pos, anch, parent)local spt = CCProgressTimer:create(CCSprite:create(img))spt:setMidpoint(CCPoint(0,0)) spt:setBarChangeRate(direc) --竖:1, 0、横:0, 1 spt:setType(kCCProgressTimerTypeBar) --kCCProgressTimerTypeRadial kCCProgressTimerTypeBar spt:setPosition(pos) spt:setAnchorPoint(anch) spt:setScale(0.5) spt:setPercentage(percent) parent:addChild(spt, 1)return sptendlocal spt = addProgress('hello.png', CCPoint(1, 0), 30, CCPoint(160, 228), CCPoint(0.5, 0.5), pLayer)local pto = CCProgressTo:create(2, 100)spt:runAction(pto);
0 0
- luaUI 2
- luaUI 3
- quick-cocos2dx-luaUI控件讲解
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- >2
- Android 实现顶层窗口、悬浮窗口
- 嵌入式 2.6内核配置与裁剪浅析
- ubuntu解压文件命令和拷贝本件命令
- linux init执行顺序
- http://blog.csdn.net/ithomer/article/details/6688883
- luaUI 2
- Apache Commons工具集简介
- Editplus 格式化 xml
- WPF下ImageButton的实现
- Swift实现OC中的单例模式
- getaddrinfo函数实例--网上考的
- Fedora中QTCreator无法切换中文输入法
- 万能”的网站后台账号和密码!
- Centos挂载新硬盘、分区、格式化