尝试调用'addEventListener'(一个零值)

时间:2014-08-29 07:02:54

标签: lua corona

我在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 )

修改 我注意到,当我第一次运行第二次,第三次或第四次时,我没有收到此错误

2 个答案:

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