Cocos-Lua UI及控件

-----------------------------LayerColor--------------------------------
local layer = cc.LayerColor:create(cc.c4b(0, 0, 0, 180))
layer:addChild(layer)


------------------------------Label1--------------------------------
local textContent = cc.Label:createWithTTF("", "2.ttf", fontSize) --字符串、ttf字体文件、字体大小
--ttfLabel = cc.Label:create("", activeLayer:GetTtfFont(), 22)    
textContent:setTextVerticalAlignment(cc.TextVAlignment.CENTER) --垂直对齐方式
textContent:setTextHorizontalAlignment(cc.TextHAlignment.LEFT) --水平对齐方式
textContent:setDimensions(520, 520)
textContent:enableOutline(cc.c4b(87, 0, 0, 255), 1.5) --描边
textContent:setAnchorPoint(cc.p(0,0.5)) --锚点
--中间(0.5f, 0.5f);
--左下角(0.0f, 0.0f);
--左上角(0.0f, 1.0f);
--右下角(1.0f, 0.0f);
--右上角(1.0f, 1.0f);
--右中间(1.0f, 0.5f);
--左中间(0.0f, 0.5f);
--上中间(0.5f, 1.0f);
--下中间(0.5f, 0.0f);
textContent:setPosition(620, 300)
layer:addChild(textContent)
------------------------------Label2--------------------------------
local textContent = cc.Label:create("", "2.ttf", fontSize) --字符串、ttf字体文件、字体大小
textContent:setAlignment(cc.TEXT_ALIGNMENT_LEFT,cc.VERTICAL_TEXT_ALIGNMENT_CENTER)
-- textContent:setHorizontalAlignment(1)
-- textContent:setVerticalAlignment(1)
textContent:setDimensions(520, 520)
textContent:setTextColor(cc.c4b(0xff, 0xf6, 0x00, 0xff))
textContent:setVisible(false)
textContent:enableBold()
textContent:setSkewX(15)
textContent:setAdditionalKerning(-2)
textContent:enableOutline(cc.c4b(87, 0, 0, 255), 1.5) --描边
textContent:setAnchorPoint(cc.p(0,0.5)) --锚点
textContent:enableShadow(cc.c4b(0, 0, 0, 255), cc.size(0, -1),0)
--中间(0.5f, 0.5f);
--左下角(0.0f, 0.0f);
--左上角(0.0f, 1.0f);
--右下角(1.0f, 0.0f);
--右上角(1.0f, 1.0f);
--右中间(1.0f, 0.5f);
--左中间(0.0f, 0.5f);
--上中间(0.5f, 1.0f);
--下中间(0.5f, 0.0f);
textContent:setPosition(620, 300)
layer:addChild(textContent)




------------------------------LabelAtlas--------------------------------
local label = cc.LabelAtlas:_create("HelloWorld", "fonts/tuffy_bold_italic-charmap.png", 48, 66, string.byte(" "))
label:setPosition(cc.p(size.width/2  - label:getContentSize().width / 2,size.height - label:getContentSize().height))   
layer:addChild(label, 1)


------------------------------LabelBMFont--------------------------------
local label = cc.LabelBMFont:create("HelloWorld", "fonts/BMFont.fnt")    
label:setPosition(cc.p(size.width/2,size.height - label:getContentSize().height))   
layer:addChild(label, 1)
------------------------------Sprite--------------------------------
local frameCache = cc.SpriteFrameCache:getInstance()
frameCache:addSpriteFramesWithFile("SpirteSheet.plist")


--第一种
local bgSprite = cc.Sprite:create("facebooklike.png")--从本地获取
bgSprite:initWithFile(activeLayer:addImgFile(string.format("%sac_xz_%d.png", activePath,id)))
bgSprite:setPosition(630, 280)
btCue1:setLocalZOrder(1)
btCue1:setBrightStyle(0)--只有0和1、-1 NONE = -1,NORMAL = 0,HIGHLIGHT = 1
mainLayer:addChild(bgSprite)


--第二种
local tree1 = cc.Sprite:create("tree1.png",cc.rect(604, 38, 302, 295))
tree1:setPosition(cc.p(200,230))
layer:addChild(tree1,0)




--第三种
local cache = cc.Director:getInstance():getTextureCache():addImage("tree1.png")
local tree2 = cc.Sprite:create()
tree2:setTexture(cache)
tree2:setTextureRect(cc.rect(73, 72,182,270))
tree2:setPosition(cc.p(500,200))
layer:addChild(tree2,0)


--第四种
local hammerSprite = cc.Sprite:createWithSpriteFrameName("cr_hammer_icon_b.png")--从plist文件获取
--hammerSprite:initWithSpriteFrameName("ac_everyday_public_bg.png")
hammerSprite:setPosition(150, 220)
imgIcon:addChild(hammerSprite, 5)


--第五种
local frameCrop = cc.SpriteFrame:create("crop.png", cc.rect(0, 0, 105, 95))
local spriteCrop = cc.Sprite:createWithSpriteFrame(frameCrop);
spriteCrop:setPosition(210, 40 )
layerFarm:addChild(spriteCrop)


--第六种
local heroSpriteFrame = frameCache:getSpriteFrameByName("hero1.png")
local hero1 = cc.Sprite:createWithSpriteFrame(heroSpriteFrame)
hero1:setPosition(cc.p(800,200))
layer:addChild(hero1,0)


------------------------------MenuItemSprite--------------------------------
local function callback()
    --实现内容
end
local normalSp = cc.Sprite:create("facebooklike_normal.png")
local pressSp = cc.Sprite:create("facebooklike_press.png")
local disableSp = cc.Sprite:create("facebooklike_press.png")
--或者
-- local normalSp = cc.Scale9Sprite:createWithSpriteFrameName("facebooklike_normal.png")--可以从本地获取也可以从plist文件获取
-- local pressSp = cc.Scale9Sprite:createWithSpriteFrameName("facebooklike_normal.png")
-- local normalSp:setContentSize(cc.size(170, 60))
-- local pressSp:setContentSize(cc.size(170, 60))
-- btReg:setNormalImage(btn_normal)
-- btReg:setSelectedImage(btn_normal)
-- btReg:setDisabledImage(btn_normal)
-- btReg:setEnabled(false)
local btReg = cc.MenuItemSprite:create(normalSp,pressSp,disableSp)
btReg:registerScriptTapHandler(callback)
local btMenu = cc.Menu:create(btReg)
btMenu:setPosition(720, 75)
layer:addChild(btMenu, 2)
------------------------------MenuItemImage--------------------------------
local menuPopupItem = cc.MenuItemImage:create("menu2.png", "menu2.png")
menuPopupItem:setPosition(0, 0)
menuPopupItem:registerScriptTapHandler(menuCallbackClosePopup)
menuPopup = cc.Menu:create(menuPopupItem)
menuPopup:setPosition(480.320)
menuPopup:setVisible(false)
layer:addChild(menuPopup)


local function menuCallbackClosePopup()
    --实现内容
end


------------------------------MenuItemFont、MenuItemLabel--------------------------------
cc.MenuItemFont:setFontName("Times New Roman")
cc.MenuItemFont:setFontSize(86)


local item1 = cc.MenuItemFont:create("Start")
local function menuItem1Callback(sender)
    cclog("Touch Start Menu Item.")
end
item1:registerScriptTapHandler(menuItem1Callback)


local  labelAtlas = cc.LabelAtlas:create("Help","menu/tuffy_bold_italic-charmap.png", 48, 65, string.byte(' '))
local  item2 = cc.MenuItemLabel:create(labelAtlas)
local function menuItem2Callback(sender)
    cclog("Touch Help Menu Item.")
end
item2:registerScriptTapHandler(menuItem2Callback)


local mn = cc.Menu:create(item1, item2)
mn:alignItemsVertically()
layer:addChild(mn)


------------------------------MenuItemToggle------------------------------
-- 音效
local soundOnMenuItem = cc.MenuItemImage:create("menu/on.png", "menu/on.png")
local soundOffMenuItem = cc.MenuItemImage:create("menu/off.png", "menu/off.png")
local soundToggleMenuItem = cc.MenuItemToggle:create(soundOnMenuItem, soundOffMenuItem)
soundToggleMenuItem:setPosition(director:convertToGL(cc.p(818, 220)))  
local function menuSoundToggleCallback(sender)
    cclog("Sound Toggle.")
end
soundToggleMenuItem:registerScriptTapHandler(menuSoundToggleCallback)


-- 音乐
local musicOnMenuItem = cc.MenuItemImage:create("menu/on.png", "menu/on.png")
local musicOffMenuItem = cc.MenuItemImage:create("menu/off.png", "menu/off.png")
local musicToggleMenuItem = cc.MenuItemToggle:create(musicOnMenuItem, musicOffMenuItem)
musicToggleMenuItem:setPosition(director:convertToGL(cc.p(818, 362)))    
local function menuMusicToggleCallback(sender)
    cclog("Music Toggle.")
end
musicToggleMenuItem:registerScriptTapHandler(menuMusicToggleCallback)


-- Ok按钮
local okMenuItem = cc.MenuItemImage:create(
    "menu/ok-down.png",
    "menu/ok-up.png")
okMenuItem:setPosition(director:convertToGL(cc.p(600, 510)))


local mn = cc.Menu:create(soundToggleMenuItem, musicToggleMenuItem,okMenuItem)
mn:setPosition(cc.p(0, 0))
layer:addChild(mn)


------------------------------EditBox--------------------------------
local  sprite = ccui.Scale9Sprite:create(activeLayer:addImgFile(string.format("%sad_activity_codebg.png", activePath)))
local codeInput = ccui.EditBox:create(cc.size(350, 50), sprite,sprite,sprite)
codeInput:setPlaceholderFont(activeLayer:GetTtfFont(), 24)
codeInput:setFont(activeLayer:GetTtfFont(), 24)
if appLoc ~= 1 and appLoc ~= 16 then
    codeInput:setPlaceholderFont(activeLayer:GetTtfFont(), 22)
    codeInput:setFont(activeLayer:GetTtfFont(), 22)
end
codeInput:setPlaceHolder(getLocalString("input_tip", appLoc));
codeInput:setFontColor(cc.c3b(255, 255, 255))
codeInput:setMaxLength(24)
codeInput:setPosition(cc.p(cPosX,150))    
bgSprite:addChild(codeInput)


local function editboxEventHandler(eventType)
        if eventType == "began" then --编辑框开始编辑时调用
            strFmt = string.format("editBox %p DidBegin !", codeInput)
            print(strFmt)
        elseif eventType == "ended" then --编辑框完成时调用
            strFmt = string.format("editBox %p DidEnd !", codeInput)
            print(strFmt)
        elseif eventType == "return" then --编辑框return时调用
            strFmt = string.format("editBox %p was returned !",codeInput)
            --判断是哪个编辑框,在多个编辑框同时绑定此函数时 需判断时哪个编辑框
            if codeInput == EditName then 
              --当编辑框EditName 按下return 时到此处
            elseif codeInput == EditPassword then
            --当编辑框EditPassword  按下return 时到此处
            elseif codeInput == EditEmail then
            --当编辑框EditEmail   按下return 时到此处
            end
            print(strFmt)
        elseif eventType == "changed" then --编辑框内容改变时调用
            strFmt = string.format("editBox %p TextChanged, text: %s ", codeInput, codeInput:getText())
            print(strFmt)
        end
end
codeInput:registerScriptEditBoxHandler(editboxEventHandler)


------------------------------Button--------------------------------
local bt = ccui.Button:create()
bt:loadTextures("cr_btn_gr_n.png", "cr_btn_gr_p.png", "", 1) --1:从plist文件中获取 0:从本地获取资源
bt:setCascadeOpacityEnabled(true)--开启透明度
bt:setScale9Enabled(true)
bt:setContentSize(cc.size(280, 60))  --按钮的大小
bt:loadTextureNormal("132.png",1)
bt:setPosition(cc.p(180, 270 - i * 90))
bt:setTouchEnabled(false)
bt:setEnabled(false)
bt:setBright(false)
bt:setTitleText("123")--按钮上的字
bt:setTitleFontName("Arial")
bt:setTitleFontSize(22)
layer:addChild(bt)
bt:addTouchEventListener(
    function(sender, eventType)
        if eventType == ccui.TouchEventType.ended then
            --实现内容
        end
    end
)


-- bt:addTouchEventListener(upBtnCallback)
-- local function upBtnCallback(sender, eventType)
--     if eventType == ccui.TouchEventType.ended then
--         --实现内容
--     end
-- end
------------------------------ImageView--------------------------------
local imgIcon = ccui.ImageView:create()
imgIcon:loadTexture("cr_gem_tag.png", 1)
imgIcon:setPosition(cc.p(30, 30))
imgBk:setScale9Enabled(true)
imgBk:setCapInsets(cc.rect(15,15,1,1))
imgBk:setContentSize(cc.size(360, 360))
imgIcon:setTouchEnabled(false)
imgIcon:setOpacity(200)
layer:addChild(imgIcon)


------------------------------Text--------------------------------
local num = ccui.Text:create()
num:setFontName(appFont)
num:setFontSize(22)
num:setColor(cc.c3b(255, 255, 255))
num:setString(tostring(btText.num))
num:setTextAreaSize(cc.size(240, 60))
num:setPosition(cc.p(65, 30))
num:setTouchEnabled(false)
num:ignoreContentAdaptWithSize(false) --自动换行
num:setContentSize(cc.size(560, 460))
num:setTextHorizontalAlignment(cc.TEXT_ALIGNMENT_LEFT)--水平对齐方式
num:setTextVerticalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_CENTER)--垂直对齐方式
num:getVirtualRenderer():enableShadow(cc.c4b(0, 0, 0, 150), cc.size(2,-2)) --num:getVirtualRenderer()为Label类型
layer:addChild(num)


------------------------------tableView--------------------------------
tableView = cc.TableView:create(cc.size(810, 440))
tableView:setDirection(cc.SCROLLVIEW_DIRECTION_VERTICAL)
tableView:setVerticalFillOrder(cc.TABLEVIEW_FILL_TOPDOWN)
tableView:setColor(cc.c3b(255,255,255))
tableView:setPosition(cc.p(10, 10))
tableView:setDelegate()
imgBk:addChild(tableView)
tableView:registerScriptHandler(function(tableView)
    return 1
end, cc.NUMBER_OF_CELLS_IN_TABLEVIEW)  


tableView:registerScriptHandler(function(tableView, idx)
    return 960, 640
end, cc.TABLECELL_SIZE_FOR_INDEX)


tableView:registerScriptHandler(function(tableView, idx)
    local pDelCell = tableView:dequeueCell()
    while (pDelCell ~= nil) do
        pDelCell:removeAllChildren()
        pDelCell:removeFromParent()
        pDelCell = tableView:dequeueCell()
    end
    local cell = tableView:dequeueCell()
    if cell == nil then
        cell = cc.TableViewCell:create()
        local cellBg = ccui.ImageView:create("ac_bk.png", 1)
        cellBg:setPosition(cc.p(cellWidth / 2.0, cellHeight / 2.0 + 5))
        cellBg:setScale9Enabled(true)
        cellBg:setContentSize(cc.size(cellWidth  - 10,90))
        cell:addChild(cellBg)     
    end
    return cell
end, cc.TABLECELL_SIZE_AT_INDEX) 
tableView:reloadData()




-- tableView:registerScriptHandler(CueResultLayer.scrollViewDidScroll,cc.SCROLLVIEW_SCRIPT_SCROLL)
-- tableView:registerScriptHandler(CueResultLayer.scrollViewDidZoom,cc.SCROLLVIEW_SCRIPT_ZOOM)
-- tableView:registerScriptHandler(CueResultLayer.tableCellTouched,cc.TABLECELL_TOUCHED)
-- tableView:registerScriptHandler(CueResultLayer.cellSizeForTable,cc.TABLECELL_SIZE_FOR_INDEX)
-- tableView:registerScriptHandler(CueResultLayer.tableCellAtIndex,cc.TABLECELL_SIZE_AT_INDEX)
-- tableView:registerScriptHandler(CueResultLayer.numberOfCellsInTableView,cc.NUMBER_OF_CELLS_IN_TABLEVIEW)
-- function CueResultLayer.scrollViewDidScroll(view)
-- end


-- function CueResultLayer.scrollViewDidZoom(view)
-- end


-- function CueResultLayer.tableCellTouched(table,cell)
-- end


-- function CueResultLayer.cellSizeForTable(table,idx) 
--     return 960,640
-- end


-- function CueResultLayer.tableCellAtIndex(table, idx)
    
--     local cell = table:dequeueCell()
--     while ( cell ~= nil ) do
--        cell:removeFromParent()
--        cell = table:dequeueCell()
--     end
   
--     if nil == cell then
--         cell = cc.TableViewCell:new()


--         local propId, propgrade = CueResultLayer:analysisInfo(CueResultLayer.reslutList[idx + 1])




--         local cellBg = ccui.Scale9Sprite:createWithSpriteFrameName("Gray_Bg.png")
--         cellBg:setContentSize(cc.size(CELL_WIDTH, CueResultLayer._cellHeight[idx]))
--         cellBg:setPosition(cc.p(CELL_WIDTH/2, CueResultLayer._cellHeight[idx] / 2))
--         cell:addChild(cellBg)
--     end


--     return cell
-- end


-- function CueResultLayer.numberOfCellsInTableView(table)
--    return 1
-- end
------------------------------ListView--------------------------------
local listView = ccui.ListView:create()
listView:setContentSize(cc.size(500,95))
listView:setPosition(5, 50)
listView:setDirection(ccui.ScrollViewDir.vertical)
listView:setGravity(ccui.ListViewGravity.centerVertical)
listView:setBounceEnabled(true)
listView:setItemsMargin(25)
listView:setScrollBarEnabled(false)
listView:pushBackDefaultItem()
layer:addChild(listView)


for i = 1, 3 do
    local custom_item = ccui.Layout:create()
    custom_item:setContentSize(cc.size(580, 140))
    listView:pushBackCustomItem(custom_item)


    local spBg = cc.Sprite:create(activeLayer:addImgFile(activePath .. "row_show.png"))
    spBg:setAnchorPoint(cc.p(0,0))
    custom_item:addChild(spBg);
end  




------------------------------LoadingBar--------------------------------
local progress = ccui.LoadingBar:create()
progress:loadTexture("ac_pross.png", 1)
progress:setPercent(0)
progress:setPosition(627, 345)  
layer:addChild(progress,2) 


------------------------------RichText--------------------------------
local richText = ccui.RichText:create()
richText:ignoreContentAdaptWithSize(true)
richText:setAnchorPoint(cc.p(0.5,0.5))
local re1 = ccui.RichElementText:create(1, cc.c3b(0xa3, 0xa5, 0xe6), 255, "123", "Arial", 20)
local re2 = ccui.RichElementText:create(2, cc.c3b(0x22,0x9d,0x60), 255,  "123", "Arial", 20)
richText:pushBackElement(re1)
richText:pushBackElement(re2)
layer:addChild(richText)


------------------------------TextField--------------------------------
local  codeInput = ccui.TextField:create(getLocalString("input_tip", appLoc),activeLayer:GetTtfFont(), 24)
codeInput:setTouchAreaEnabled(true)
codeInput:setTouchSize(cc.size(350,60))
codeInput:setMaxLengthEnabled(true)
codeInput:setTouchEnabled(true)
codeInput:setCursorEnabled(true)
codeInput:setColor(cc.c3b(255, 255, 255))
codeInput:setMaxLength(24)
codeInput:setScaleX(1/1.4)
codeInput:setAnchorPoint(cc.p(0,0.5))
codeInput:setPosition(cc.p(0,22)) 
codeInput:addEventListener(function(sender, eventType)
    if eventType == 0 then --键盘弹出
        if codeInput:getStringLength() <= 2 then
            codeInput:setAnchorPoint(cc.p(0.5,0.5))
        end
        if codeInput:getString() ~= "" then
            codeInput:setAnchorPoint(cc.p(0,0.5))
        end  
    elseif eventType == 1 then --键盘隐藏
        if codeInput:getString() == "" then
            codeInput:setString("")
            codeInput:setAnchorPoint(cc.p(0,0.5))
        end           
    elseif eventType == 2 then --输入文本
        codeInput:setAnchorPoint(cc.p(0,0.5))
    elseif eventType == 3 then --删除文本
        codeInput:setAnchorPoint(cc.p(0,0.5))
    end
end)
layer:addChild(codeInput)




------------------------------CocosStudio--------------------------------
--获取widget
local rootWidget = ccs.GUIReader:getInstance():widgetFromJsonFile("ChristmasLayer.ExportJson")  --cocos studio
layer:addChild(rootWidget)
--获取对象
--第一种方式  父类获取子类
local labelTitle = rootWidget:getChildByName("Label_title")
labelTitle:setFontName("..ttf") --字体名称
labelTitle:setFontSize(18)--字体大小
labelTitle:getVirtualRenderer():enableOutline(cc.c4b(255, 255, 0, 255), 1.0)--描边
--第二种方式
local labelTitle = ccui.Helper:seekWidgetByName(rootWidget,"Label_title")
--注意,从CocosStudio获取对象,如果是文本框(Text)、输入框(EditBox)、按钮(Button)、图片(ImageView)


------------------------------动画Animate--------------------------------
--蛋裂开动画
local spriteFrame  = cc.SpriteFrameCache:getInstance()
spriteFrame:addSpriteFramesWithFile("run.plist")  --添加plist文件
local animation = cc.Animation:create()
for i = 1, 25 do
    --第一种
    -- local frameName = string.format("h%d.png",i)
    -- cclog("frameName = %s",frameName)
    -- local spriteFrame = spriteFrame:getSpriteFrameByName(frameName)
    -- animation:addSpriteFrame(spriteFrame)


    --第二种
    local frameName = string.format("fire/campFire%02d.png",i)
    cclog("frameName = %s",frameName)
    animation:addSpriteFrameWithFile(frameName)
end


animation:setDelayPerUnit(1. / 25.0)
animation:setRestoreOriginalFrame(true)
local action = cc.Animate:create(animation)


local breakSprite = cc.Sprite:createWithSpriteFrameName("egg_" .. c .. " (1).png")
breakSprite:setPosition(87, 191)
imgIcon:addChild(breakSprite, 4, 4)
breakSprite:runAction(cc.Sequence:create(cc.DelayTime:create(0.3), action, cc.RemoveSelf:create()))


--第二种
local frameWidth = 105
local frameHeight = 95


-- create dog animate
local textureDog = cc.Director:getInstance():getTextureCache():addImage("dog.png")
local rect = cc.rect(0, 0, frameWidth, frameHeight)
local frame0 = cc.SpriteFrame:createWithTexture(textureDog, rect)
rect = cc.rect(frameWidth, 0, frameWidth, frameHeight)
local frame1 = cc.SpriteFrame:createWithTexture(textureDog, rect)


local spriteDog = cc.Sprite:createWithSpriteFrame(frame0)
spriteDog:setPosition(self.origin.x, self.origin.y + self.visibleSize.height / 4 * 3)
spriteDog.isPaused = false


local animation = cc.Animation:createWithSpriteFrames({frame0,frame1}, 0.5)
local animate = cc.Animate:create(animation);
spriteDog:runAction(cc.RepeatForever:create(animate))
------------------------------XML动画Armature--------------------------------
ccs.ArmatureDataManager : getInstance() : addArmatureFileInfo(appPath .. "xiaochou01.png",appPath .. "xiaochou01.plist", appPath .. "xiaochou01.xml")
local armature = ccs.Armature : create("xiaochoudonghua")
armature : getAnimation() : playWithIndex(0)
armature : setAnchorPoint(cc.p(0.5, 0.5))
armature : setPosition(170, 200)
armature : getAnimation() : setSpeedScale(20 / 80)
armature : setScale(0.8)
layer : addChild(armature) 


------------------------------粒子特效--------------------------------
local particleSystem = cc.ParticleSystemQuad:create("snow.plist")
particleSystem:setPosition(cc.p(size.width/2, size.height + 50))
layer:addChild(particleSystem)


------------------------------动作Action--------------------------------
local action1 = cc.MoveTo:create(0.5, cc.p(480, -320))
local callfunc = cc.CallFunc:create(HideLayerFinishCallBack)
local action2 = cc.EaseExponentialOut:create(action1)
local action = cc.Sequence:create(action2, callfunc)
layer:runAction(action)




local function CallBack1()
    sprite:runAction(cc.TintBy:create(0.5, 255, 0, 255))
end
function MyActionScene:OnCallFunc()
    local acf = cc.CallFunc:create(CallBack1)
    sprite:runAction(acf)
end


local function CallBack2(pSender)
    local sp = pSender
    sp:runAction(cc.TintBy:create(1, 255, 0, 255))
end
function MyActionScene:OnCallFuncN()
    local acf = cc.CallFunc:create(CallBack2)
    sprite:runAction(cc.Sequence:create(acf))
end


local function CallBack3(pSender, table)
    local sp = pSender
    cclog("CallBack3 %d", table[1])
    sp:runAction(cc.TintBy:create(table[1], table[2], table[3], table[4]))
end
function MyActionScene:OnCallFuncND()
    local acf = cc.CallFunc:create(CallBack3, {1, 255, 0, 255})
    sprite:runAction(acf)
end
------------------------------遮罩ClippingNode--------------------------------
local stencil = cc.Sprite:create()
stencil:setTextureRect(cc.rect(0, 0, 420, 220))
stencil:setColor(cc.c3b(255,255,255))   
local  clippnode = cc.ClippingNode:create(stencil)
clippnode:setPosition(600, 140)
clippnode:setInverted(false);           
layer:addChild(clippnode)


------------------------------定时器scheduler--------------------------------
--自定义定时器
local function updateLeftTime(f)
    --实现内容
end


local schedule_updateLeftTime = nil
local scheduler = cc.Director:getInstance():getScheduler()  --
schedule_updateLeftTime = scheduler:scheduleScriptFunc(updateLeftTime, 1.0, false) --时间调度器


local function onNodeEvent(event)  --退出事件停止调用定时器
    --有五个状态 enter、enterTransitionFinish、exit、exitTransitionStart、cleanup
    if event == "exitTransitionStart" then
        if schedule_updateLeftTime then  
            scheduler:unscheduleScriptEntry(schedule_updateLeftTime)  
            schedule_updateLeftTime = nil
        end
    end
end
--创建退出时候监听 某个节点退出
node:registerScriptHandler(onNodeEvent) 
updateLeftTime(0)


--默认定时器
local function update(delta)
    local x,y = label:getPosition()
    label:setPosition(cc.p(x + 2, y - 2))
end


--开始游戏调度
layer:scheduleUpdateWithPriorityLua(update, 0)


function onNodeEvent(tag)
    if tag == "exit" then
        --开始游戏调度
        layer:unscheduleUpdate()
    end
end
layer:registerScriptHandler(onNodeEvent)


------------------------------单点触摸事件--------------------------------
--注册触摸事件
local function onTouchBegin(touch, event)
    return true
end


local function onTouchMoved(touch, event)
    local location = touch:getLocation()
    cclog("onTouchMoved: %0.2f, %0.2f", location.x, location.y)
end


local function onTouchEnded(touch, event)
    -- 获取事件所绑定的 node
    local node = event:getCurrentTarget()
    local locationInNode = node:convertToNodeSpace(touch:getLocation())
    local s = imgBk:getContentSize()
    local rect = cc.rect(150, 150, s.width-20, s.height)


    -- 点击范围判断检测
    if cc.rectContainsPoint(rect, locationInNode) == false then


    end
end


local listener = cc.EventListenerTouchOneByOne:create()
listener:registerScriptHandler(onTouchBegin, cc.Handler.EVENT_TOUCH_BEGAN )
listener:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED )
listener:registerScriptHandler(onTouchEnded, cc.Handler.EVENT_TOUCH_ENDED )
listener:setSwallowTouches(true)
local eventDispatcher = layer:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, layer)


-- local listener2 = listener1:clone()
-- eventDispatcher:addEventListenerWithSceneGraphPriority(listener2, boxB)
-- local listener3 = listener1:clone()
-- eventDispatcher:addEventListenerWithSceneGraphPriority(listener3, boxC)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lianghui0811/article/details/76512684
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值