Lua 日冕中loqSprite物体的拖曳
我不熟悉使用loqSprite,我尝试拖动loqSprite sprite对象,但它没有完成,但是它只调用其侦听器一次,然后在它的touch listner没有被调用,甚至没有给出任何错误后,sprite正在播放。我还认为我的drag/listener函数可能有问题,但当我在inbult corona的Sprite对象上尝试相同的drag(movePen()函数)时,效果很好。我不知道我错过了什么。谁能帮帮我吗。。。。下面是代码片段。谢谢Lua 日冕中loqSprite物体的拖曳,lua,coronasdk,Lua,Coronasdk,我不熟悉使用loqSprite,我尝试拖动loqSprite sprite对象,但它没有完成,但是它只调用其侦听器一次,然后在它的touch listner没有被调用,甚至没有给出任何错误后,sprite正在播放。我还认为我的drag/listener函数可能有问题,但当我在inbult corona的Sprite对象上尝试相同的drag(movePen()函数)时,效果很好。我不知道我错过了什么。谁能帮帮我吗。。。。下面是代码片段。谢谢 local function movePen(event
local function movePen(event)
local targetObj= event.target;
if event.phase == 'began' then
display.getCurrentStage():setFocus(targetObj);
targetObj.isFocus = true;
targetObj.y = event.y;
elseif event.phase == 'moved' then
targetObj.x = event.x;
targetObj.y = event.y;
elseif event.phase == 'ended' then
display.getCurrentStage():setFocus(nil);
targetObj.isFocus = false;
end
return true;
end --end of touch/move function
local spriteFactoryForPen = loqsprite.newFactory('penAnimation')
local penSpriteAnim = spriteFactoryForPen:newSpriteGroup('pen_write')
penSpriteAnim.x = 100
penSpriteAnim.y = 200
local function spriteEvent (e) --listener to play in loop
if(e.phase == "end") then
penSpriteAnim:play()
end
end -- end of sprit event function
penSpriteAnim:addEventListener("touch", movePen); -- adding listener to move pen object
penSpriteAnim:addEventListener("sprite", spriteEvent) -- adding listener to play in loop
penSpriteAnim:play('pen_write') -- playing pen Sprite
首先,不需要在循环中调用penSpriteAnim:play()。因为它将自动在循环中播放,直到您不调用penSpriteAnim:pause()函数为止 对于touch listener,应该在页面顶部声明所有局部变量。 我对此不确定,但希望这能奏效。因为lua是从上到下编译的