4

私はloqSpriteを初めて使用しています。loqSpriteスプライトオブジェクトをドラッグしようとしていますが、完了していませんが、リスナーを1回だけ呼び出してから、タッチリスナーが呼び出されず、エラーが発生してもスプライトが再生されます. また、ドラッグ/リスナー関数にバグがあるのではないかと思いましたが、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
4

1 に答える 1

0

まず、ループで penSpriteAnim:play() を呼び出す必要はありません。penSpriteAnim:pause() 関数を呼び出さない限り、自動的にループ再生されるためです。

タッチ リスナーの場合、ページの上部ですべてのローカル変数を宣言する必要があります。これについてはよくわかりませんが、うまくいくことを願っています。lua は上から下へコンパイルするためです。

于 2014-03-11T10:21:58.307 に答える