电晕:触发精灵触摸



我想在精灵动画被触摸时触发它,并且只让它循环一次。

我有一个精灵动画,目前在屏幕上触发触摸,但我不知道如何制作它,所以它只在精灵本身被触摸时才动画。

require "sprite"
local sheet1 = sprite.newSpriteSheet( "greenman.png", 75, 105 )
local spriteSet1 = sprite.newSpriteSet(sheet1, 1, 16)
sprite.add( spriteSet1, "green", 1, 12, 700, 1 ) -- play 12 frames every 700 ms
local instance1 = sprite.newSprite( spriteSet1 )
instance1.x = display.contentWidth/2
instance1.y = display.contentHeight/2.8
function kick( event )
  if(event.phase == "ended") then
    instance1:prepare("green")
    instance1:play()
  end
end
Runtime:addEventListener("touch", kick)

对一次性代码使用匿名函数
在这里你会编码一次,然后忘记:

instance1:addEventListener("touch", function(event)
  if(event.phase == "ended") then
    instance1:prepare("green")
    instance1:play()
  end
end)

当您希望函数绑定到对象时执行此操作,
并且它可能会在不同的实例中变形,
instance1下的kick函数保存为其属性之一,
然后添加/删除它:

instance1.kick=function(event)
  if(event.phase == "ended") then
    instance1:prepare("green")
    instance1:play()
  end
end
instance1:addEventListener("touch",instance1.kick)

如果事件处理程序在不同的对象之间共享并广泛使用:

function kick( event )
  if(event.phase == "ended") then
    instance1:prepare("green")
    instance1:play()
  end
end
instance1:addEventListener("touch", kick)

请尝试

instance1:addEventListener( "touch" , kick )

甚至

instance1:addEventListener( "tap" , kick )

只写:

instance1:addEventListener ("touch", kick)

而不是:

Runtime:addEventListener ("touch", kick)

最新更新