2017-04-17 86 views
0

目前用Corona SDK创建游戏可以有图像,点击时可以显示3张图像,一旦点击3张图像,分数将增加1.另外,我只是一个初学者编码,这对我来说是一种新的语言。谢谢。CoronaSDK触控事件

local CButton = display.newImage("+5.jpg" , 100 , 600) 
CButton.alpha = 0.5 
CButton.name = "CButton" 

local CButtonLabel = display.newText({ text = "", x = 0, y = 0, fontSize = 28 }) 
CButtonLabel:setTextColor(0) ; CButtonLabel.x = 100 ; CButtonLabel.y = 45 

local function touchCListener(event) 

local object = event.target 
print(event.target.name.." TOUCH on the '"..event.phase.."' Phase!") 

local ChordCOne = display.newImage("+5.jpg", 900,300) 

local ChordCTwo = display.newImage("+5.jpg", 1000,300) 

local ChordCThree = display.newImage("+5.jpg", 1100,300) 


end 


--add "touch" listener -- LABEL IS FOR TESTING! 

CButton:addEventListener("touch", touchCListener) 

ChordCOne:addEventListener("touch", updateScore) 

CButtonLabel.text = "touch" 

回答

0

是的,可以在侦听器函数中创建新的DisplayObjects,并且还可以将侦听器添加到这些对象中。

在您的代码中,您尚未将侦听器中创建的DisplayObject添加到任何GroupObject(例如scene.view),这会给出意想不到的结果。

由于指向新创建的DisplayObjects(ChordCOne等)的变量是local的实例化函数,因此您不能在函数外调用addEventListener()。您应该在创建时添加侦听器。

而且,updateScore()侦听器函数没有在任何地方定义。确保updateScore不是无论何时何地将它作为addEventListener()的参数。