我猜这是一个真正的新手问题,
但我有以下代码:
local function createCircle()
[...]
circle = display.newCircle( positionX, positionY, circleRadius )
[...]
end
function circle:touch( event )
if event.phase == "ended" then
scaleCircle(self,scaleUp)
end
return true;
end
circle:addEventListener("touch", circle)
我清理了一下,专注于重要的事情。
我现在的问题是:我可以触摸一个圆圈并进行缩放。但这只适用于其中一个圈子(我想创建它们中的3个或4个)。而且我猜它只适用于最后创建的圆圈。
我想这里的主要问题是,我用“createCircle()”创建的所有圆圈都被命名为“circle”。因此,evenListener仅适用于我创建的“圆圈”。
如何选择我创建的其他圈子?
谢谢你:)答案 0 :(得分:1)
你必须使用表格。例如:
circles = {}
local function createCircle()
--[[ MORE CODE ]]--
table.insert( circles, display.newCircle( positionX, positionY, circleRadius ) )
--[[ MORE CODE ]]--
end
function circle:touch( event )
if event.phase == "ended" then
scaleCircle(self,scaleUp)
end
return true;
end
for _, circle in ipairs( circles ) do
circle:addEventListener("touch", circle)
end
答案 1 :(得分:1)
这就是我解决它的方法:
local function createCircle()
--[[ MORE CODE ]]--
table.insert(circleTable, display.newCircle( positionX, positionY, circleRadius ) )
--[[ MORE CODE ]]--
end
function onObjectTouch(event)
local self = event.target
if event.phase == "ended" then
--[[ MORE CODE ]]--
end
return true;
end
local function addTouchListeners()
for _, circle in ipairs(circleTable) do
circle:addEventListener("touch", onObjectTouch)
end
end
createCircle()
addTouchListeners()
我猜Dream Eaters解决方案应该也能正常运行。但是我在调用createCircle()函数时遇到了另一个错误。我通过为TouchListeners创建一个函数并在createCircle()函数之后调用它来解决这个问题。
希望这可以帮助其他有类似问题的人。