adding listeners to spawned objects

This may have been asked before, but I have not been able to find an answer.

I am trying to assign event listeners to 'enemies' spawned using the following code. After the enemies are spawned with unique names, when I use those names corona terminal returns a nil value.

local enemy = {}
local enemies = 0

local function printName (event)
print (event.target.name)
end

local function spawnEnemyShip ()
enemies = enemies + 1
enemy[enemies]=display.newImage("shipB.png")
enemy[enemies].x = math.random(20,270)
enemy[enemies].y = -200
enemy[enemies].name = "enemyShip" .. (enemies)
physics.addBody(enemy[enemies], "dynamic", {density = math.random(0.1, 1000), bounce = 0})
enemy[enemies]:addEventListener("collision", printName)
return enemy
end

timer.performWithDelay(100, spawnEnemyShip, 5)

To make things a little more clear, after this function I would like to be able to write something like:

enemyShip1:addEventListener("tap", someFunction)

Thanks!

Add this

enemy[enemies].collision = printName

before this

enemy[enemies]:addEventListener("collision", printName)

then change the above line to this

enemy[enemies]:addEventListener("collision", enemy[enemies])

views:1336 update:2011/11/5 17:18:39
corona forums © 2003-2011