gpt4 book ai didi

error-handling - 第172和218行的Corona SDK错误,没有文件名,只有问号

转载 作者:行者123 更新时间:2023-12-03 08:57:39 26 4
gpt4 key购买 nike

Corona SDK模拟器版本2013.1137(2013.6.7)显示以下错误:

Corona Simulator Runtime error

File: ?

Attempt to perform arithmetic on field '?' (a function value)

stack traceback:
[C]: ?
?: in function <?:172>
?: in function <?:218>

该错误是由以下代码( main.lua )引起的:
local d1 = display.newCircle(0, 40, 10)
local gNonEmpty1 = display.newGroup()
gNonEmpty1:insert(display.newCircle(0, 70, 10))
local gEmpty1 = display.newGroup()

transition.to(d1, { time = 1000, x = 100 })
transition.to(gNonEmpty1, { time = 1000, x = 100 })
transition.to(gEmpty1, { time = 1000, x = 100 })

local d2 = display.newCircle(0, 150, 10)
local gNonEmpty2 = display.newGroup()
gNonEmpty2:insert(display.newCircle(0, 180, 10))
local gEmpty2 = display.newGroup()

transition.to(d2, { time = 1000, x = 100, transition = easing.outExpo })
transition.to(gNonEmpty2, { time = 1000, x = 100, transition = easing.outExpo })
transition.to(gEmpty2, { time = 1000, x = 100, transition = easing.outExpo })

local d3 = display.newCircle(0, 260, 10)
local gNonEmpty3 = display.newGroup()
gNonEmpty3:insert(display.newCircle(0, 290, 10))
local gEmpty3 = display.newGroup()

transition.to(d3, { time = 1000, x = 100, easing.outExpo })
transition.to(gNonEmpty3, { time = 1000, x = 100, easing.outExpo })
transition.to(gEmpty3, { time = 1000, x = 100, easing.outExpo })

导致错误的实际行是倒数第二个:
transition.to(gNonEmpty3, { time = 1000, x = 100, easing.outExpo })

您可以通过注释将其 checkout 。

Corona文档指出:
You should have at least one DisplayObject inserted into a
Display Group before you change or read any of the properties
of the group (e.g., x, y, setReferencePoint(), etc.).

因此,使用 transition。到时出现一些怪异的行为是合法的
gEmpty1 gEmpty2 gEmpty3 上。不出所料, transition ..到的前两个块,总共进行了六个调用,除了缓动外,它们的行为相同
对于前三个调用,默认为 easing.linear ,对于其他三个调用为 easing.outExpo

如果您在编写 transition.to 调用时犯了一个错误,并且您编写了与最后三个 transition.to 调用类似的内容,则在缓动函数的规范中缺少 transition = 部分问题是,只有针对非空组的对象 gNonEmpty3 才负责导致无法理解的错误消息。

问题
  • 如果遇到没有行号,没有文件名,只有问号的错误,您应该在Corona SDK中做什么?
  • 为什么Corona SDK在两个行号172和218之外无法提供有意义的报告?
  • 为什么会发生此错误?我的理论是,从 transition。到不会执行太多错误检查;如果您以空组为目标,则在指定缓动函数时将不会引起注意;可能与以下事实有关:不应使用空组属性,因此,从 transition。到或其内部更新回调,可能会发现该组为空,并且只是不执行任何操作而返回。相反,对于非空组,缺少的转换= 导致某些代码被触发,而不一定是缓动代码,并且在该代码中发生了实际错误。

  • config.lua
    application = {
    content = {
    width = 320,
    height = 480,
    scale = "letterBox",
    fps = 30
    }
    }

    原始帖子(已过时)

    我很难找到Corona SDK中的错误。
    该错误导致模拟器显示以下消息:
    Corona Simulator Runtime error

    File: ?

    Attempt to perform arithmetic on field '?' (a function value)

    stack traceback:
    [C]: ?
    ?: in function <?:172>
    ?: in function <?:218>

    我应如何解释此类消息? 我没有源文件
    顺便说一下,那么多的线。

    我有一个名为Button.lua的文件,似乎与第41行有关
    提出异常(exception)情况,尽管并非由此引发
    线。该行是:
    button:insert(b1)

    我把这行打印在两张照片之间:
    print("Before", button, b1) 
    button:insert(b1)
    print("After")

    在模拟器控制台中打印以下消息:
    Corona Simulator[9801:f03] Before    table: 0x11daf4aa0    table: 0x1152363a0
    Corona Simulator[9801:f03] After

    最佳答案

    代替您的行:

    transition.to(gNonEmpty3, { time = 1000, x = 100, easing.outExpo })

    采用 :
    transition.to(gNonEmpty3, { time = 1000, x = 100, transition =  easing.outExpo })

    在电晕中,当您有一些 wrong syntaxwrong logic时,会出现此类错误消息。因此,请先检查这些问题。在使用的行之间插入 print是找到此类错误行的最佳解决方案。

    保持编码............. :)

    关于error-handling - 第172和218行的Corona SDK错误,没有文件名,只有问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18974516/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com