我在createScene函数中使用display.newRoundRect()创建了一些对象然后在enterScene调用中调用了这个函数
function generate_bonus_star()
tiles = {A1, A2, A3, A4, A5, A6, B1, B2, B5, B6, C1, C6,
D1, D6, E1, E2, E5, E6, F1, F2, F3, F4, F5, F6}
math. randomseed(os.clock())
index = math.random(1,23)
index_bonus_score = math.random(1,23)
print("bonus star generated at "..index)
print("bonus score generated at "..index_bonus_score)
end
注意: A1,A2 .....是使用display.newRoundRect()创建的对象
所以在entercene中我添加了这些的addEventListener。但我得到错误“尝试在这行代码上调用方法'addEventListener'(一个零值)
function scene:enterScene( event )
storyboard.purgeScene("levels")--remove previuos screens
storyboard.purgeScene("level2result")
generate_bonus_star()
A1:addEventListener( "touch", simple(A1) )--event listeners
A2:addEventListener( "touch", simple(A2) )
A3:addEventListener( "touch", simple(A3) )
.
.
.
.
tiles[index]:addEventListener( "touch", bonus_star ) //line 503
tiles[index_bonus_score]:addEventListener( "touch", bonus_score )
修改 我注意到,当我第一次运行第二次,第三次或第四次时,我没有收到此错误
答案 0 :(得分:0)
addEventListener的第二个参数可能为null。
simple(A1)
在你的代码中出现了sololy(没有定义)。
答案 1 :(得分:0)
确保在创建切片之前不设置/运行切片表。
在创建对象之前,您正在运行generate_bonus_star()
,这是不可能的。要使一切正常,只需将generate_bonus_star()
移到所有对象的创建之下。
function scene:enterScene( event )
storyboard.purgeScene("levels")--remove previuos screens
storyboard.purgeScene("level2result")
-- generate_bonus_star() this shouldn't be here.
A1:addEventListener( "touch", simple(A1) )--event listeners
A2:addEventListener( "touch", simple(A2) )
A3:addEventListener( "touch", simple(A3) )
...
...
-- After all objects are created (A1, A2 ... F5, F6)
generate_bonus_star()