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)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • 每到鸟语花香的五月, 年轻人都去春游 每一次聚会,也都把往事回首。 每一代青年 都有自己的目标, 每一个目标都有许...
    尹成果阅读 265评论 0 0
  • 以冬的纯粹忏悔 文/流一盏灯 万物,此刻深知自己是有罪的 躲起来了。 我掏出天空,不是纯粹 雾霾肆虐。 口罩里呼吸...
    流一盏灯阅读 349评论 0 17
  • 西南的十一月是多雨的季节,天微亮,我拖着你行李箱向车站走去。我们并没有说话。街上行人稀疏,三两个为生计奔波地卖菜伙...
    砸西瓜阅读 439评论 0 4