2012-09-07 28 views
0

我有一個2D數組中的動畫精靈的網格,但是當把一個精靈對象的eventListener它顯示以下錯誤「導致錯誤:失敗加載模塊'遊戲' - 請檢查文件是否存在,並且它是正確的。「,當我刪除觸摸代碼時,下一個場景彈出一個網格中的動畫火球(這很好),但我想實現touchevents網格中的各個精靈。請幫幫我。由於touchEvent使用電暈sdk的精靈的網格(2D陣列)

這裏是代碼:

模塊(...,package.seeall) 功能新的()

local localGroup = display.newGroup() 

local gamebg=display.newImageRect("gameBG.png",_W,_H) 
gamebg:setReferencePoint(display.centerReferencePoint) 
gamebg.x=_W/2 
gamebg.y=_H/2 
swapButton = {} --A 2D Array 
local instance = {} 

require "sprite" 


local tempX=130 
local tempY=60 

for i = 0, 6, 1 do 
    swapButton[i]={} 
    instance[i]={} 

    for j=0,6,1 do  
     instance[i][j]=sprite.newSprite(sprite.newSpriteSet(sprite.newSpriteSheet("fireBall.png",36,36),1,40)) 
     instance[i][j].x=tempX 
     instance[i][j].y=tempY 
     instance[i][j]:prepare() 
     instance[i][j]:play() 

     instance[i][j]:addEventListener("touch",myTouchListener) 
     swapButton[i][j]= display.newImage("circle.png",40,40) 
     swapButton[i][j].x=tempX 
     swapButton[i][j].y=tempY 
     tempX=tempX+40 


    end 
    tempX=130 
    tempY=tempY+40 
end 

function myTouchListener:touch(event) 
if event.phase == "began" then 
    display.getCurrentStage():setFocus(event.target); 
    print(display.getCurrentStage()) 
elseif event.phase=="moved" then 
print("moved") 
elseif event.phase == "ended" then 
    display.getCurrentStage():setFocus(nil); 
end 



localGroup:insert(gamebg) 


return localGroup 

感謝

-Hemanth

回答

0

您錯過了您的聽衆的結束語句,它的實現本身就是如此,因爲你沒有聲明myTouchListener。請嘗試以下操作:

module(..., package.seeall) 
function new() 

    local localGroup = display.newGroup() 

    local gamebg=display.newImageRect("gameBG.png",_W,_H) 
    gamebg:setReferencePoint(display.centerReferencePoint) 
    gamebg.x=_W/2 
    gamebg.y=_H/2 
    swapButton = {} --A 2D Array 
    local instance = {} 

    require "sprite" 


    local tempX=130 
    local tempY=60 

    for i = 0, 6, 1 do 
     swapButton[i]={} 
     instance[i]={} 

     for j=0,6,1 do 
      instance[i][j]=sprite.newSprite(sprite.newSpriteSet(sprite.newSpriteSheet("fireBall.png",36,36),1,40)) 
      instance[i][j].x=tempX 
      instance[i][j].y=tempY 
      instance[i][j]:prepare() 
      instance[i][j]:play() 

      function myTouchListener(event) 
       if event.phase == "began" then 
        display.getCurrentStage():setFocus(event.target); 
        print(display.getCurrentStage()) 
       elseif event.phase=="moved" then 
        print("moved") 
       elseif event.phase == "ended" then 
        display.getCurrentStage():setFocus(nil); 
       end 
      end 

      instance[i][j]:addEventListener("touch",myTouchListener) 
      swapButton[i][j]= display.newImage("circle.png",40,40) 
      swapButton[i][j].x=tempX 
      swapButton[i][j].y=tempY 
      tempX=tempX+40 
     end 
     tempX=130 
     tempY=tempY+40 
    end 

    localGroup:insert(gamebg) 


    return localGroup 
end 
+0

感謝pookzilla,它現在工作 – user1590042