电晕sdk。 addEventListener“点击”到类的许多实例

时间:2012-07-13 22:28:52

标签: object lua addeventlistener corona instances

我有一个类的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行代码!虽然这不是很愚蠢,但这并不好,因为我最终希望事件在特定对象本身内触发一个函数。

1 个答案:

答案 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

保持编码...........:)