我是新手使用loqSprite,我试图拖动一个loqSprite精灵对象,但它没有完成,但它只调用一次侦听器,然后它的触摸列表器都没有被调用,甚至它没有给出任何错误,精灵在玩。另外我认为我的拖动/监听器功能可能是错误的但是当我在inbult电晕的Sprite对象上尝试相同的拖动(movePen()函数)时它工作正常。我想念的是什么,我不知道。任何人都可以帮助我....下面是代码片段。感谢
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
答案 0 :(得分:0)
首先,不需要在循环中调用penSpriteAnim:play()。因为它会在循环中自动播放,所以你不要调用penSpriteAnim:pause()函数。
对于您的触控侦听器,您应该在页面顶部声明所有局部变量。 我不确定这一点,但希望这会奏效。因为lua正在从上到下编译。