【问题标题】:Removing items inside an array using for loop in lua在lua中使用for循环删除数组中的项目
【发布时间】:2013-03-26 10:48:30
【问题描述】:

我正在尝试使用 for 循环来销毁我的数组中的对象,如下所示:

for item in self.objects do
    item:removeSelf()
end

self.objects 是我的数组,它包含我用于动画的图像。如果我触摸这些动画对象之一,它应该被销毁(消失)。我的问题是,我收到此错误消息:

尝试调用表值

我不确定我为什么会收到此错误以及如何解决它,所以有人可以解释一下我如何在触摸事件期间从我的数组中删除对象以及为什么我会收到此消息?提前致谢。 :D

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    for x in y do... 形式的通用 for 循环期望 y 是一个迭代器函数。您正在向它传递一个表格,因此会出现错误消息。

    如果您只想遍历表中的每个条目,请使用pairs

    for key, item in pairs(self.objects) do
      item:removeSelf()
    end
    

    有关泛型 for 和迭代器的更多信息,请参阅 PiL 4.3.5 和所有 Chapter 7

    【讨论】:

    • 由于这是一个数组,你应该使用ipairs
    猜你喜欢
    • 2020-01-05
    • 2013-04-19
    • 2011-01-04
    • 1970-01-01
    • 2015-10-18
    • 2021-12-25
    相关资源
    最近更新 更多