我有一个类的2维实例数组(主要是一些文本) 我想补充一下......
addEventListener("tap", functiontocall)
到所有实例(所以当你点击一个实例时它会改变颜色和东西) 我尝试在几个地方添加它,但没有一个工作..在类本身,在类构造函数,以及在我的循环中生成数组。有任何想法吗? 继续使用for循环btw ...
mainarray = {}
for x = 1, 5, 1 do
mainarray[x] = {}
for y = 1, 5, 1 do
mainarray[x][y] = diceclass.new(x,y)
--mainarray[x][y].dicetext:addEventListener("tap", bloop) I tried this and it didnt work.
end
end
奇怪的是,如果我把它们放在后面,它们确实可以工作!但它在我的循环中不起作用......
mainarray[1][1].dicetext:addEventListener("tap", bloop)
mainarray[1][2].dicetext:addEventListener("tap", bloop)
所以我可以添加25行代码!虽然这不是很愚蠢,但这并不好,因为我最终希望事件在特定对象本身内触发一个函数。
答案 0 :(得分:0)
尝试以下代码。这可能会对您有所帮助:
local mainarray = {}
for x = 1, 5, 1 do
mainarray[x] = {} -- See where it is initialized --
for y = 1, 5, 1 do
mainarray[x][y] = display.newText(x.."|"..y,10,10,nil,10)
mainarray[x][y].x = 20+math.random(300)
mainarray[x][y].y = 20+math.random(460)
mainarray[x][y].tag = x.."|"..y
end
end
local function printTag(e)
print(e.target.tag)
return true;
end
for x = 1, 5, 1 do
for y = 1, 5, 1 do
mainarray[x][y]:addEventListener("tap",printTag)
end
end
保持编码...........:)