Error handling 第172行和第218行出现错误,没有文件名,只有问号
Corona SDK模拟器版本2013.1137(2013.6.7)显示以下错误:Error handling 第172行和第218行出现错误,没有文件名,只有问号,error-handling,lua,runtime-error,coronasdk,Error Handling,Lua,Runtime Error,Coronasdk,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> 导致错误的实际行是
Corona Simulator Runtime error
File: ?
Attempt to perform arithmetic on field '?' (a function value)
stack traceback:
[C]: ?
?: in function <?:172>
?: in function <?:218>
导致错误的实际行是倒数第二行:
transition.to(gNonEmpty3, { time = 1000, x = 100, easing.outExpo })
你可以通过评论来查看它
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.to
在gEmpty1、gEmpty2或gEmpty3上。正如所料,transition.to的前两个块(总共六个调用)的行为相同,但放松除外
对于前三个调用,easing.linear是默认值,对于其他三个调用,easing.outExpo是默认值
如果您在编写transition.to调用时出错,并且编写了与前三次transition.to调用类似的内容,其中在easing函数的规范中缺少transition=部分,那么令人惊讶的是,只有针对非空组的调用,gNonEmpty3对无法理解的错误消息负责
问题
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>
我把那条线夹在两张照片之间:
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 })
使用:
在corona中,当您有一些
错误语法
或错误逻辑
时,会出现此类错误消息。因此,首先检查这些问题。在(您使用的)行之间插入print
,是查找此类错误行的最佳解决方案
继续编码…………:) 我认为你提供的信息不足以让我们帮助你。Lua中的几乎所有内容都表示为一个表,因此不需要打印。只需尝试插入更多打印即可跟踪运行时错误发生的时间点。不过,听起来好像你在尝试在一些算术中使用函数,或者你可能使用了一个已经被其他东西占用的变量名。嗨,庞特斯,谢谢你的评论。我的代码中有更多的print语句,但我仍然无法检测程序何时停止工作。我认为这是因为使用了transition.to和onComplete回调。在异步回调中,可能事情搞砸了,我不知道具体是哪一个。我想我会继续添加更多的图片,但我确实不知道从哪里开始。正如@Pontus所建议的:发布更多代码。你真的没有给我们什么背景来分析这个问题。您可能有一个函数存储在属于某个数字的错误位置。
按钮是组对象
还是显示对象
?在这种情况下有点可疑,因此,不确定是否可以将插入DisplayObject
到另一个DisplayObject
@Kamiccolo感谢您的观察,按钮是一个GroupObject,但请检查上面的注释,因为您的思路是正确的。文档规定,在更改或读取显示组的任何属性(例如,x、y、setReferencePoint()等)之前,应至少将一个DisplayObject插入显示组。具有讽刺意味的是,虽然将按钮留空在某种程度上是Corona中的一个错误,但它可能会抵消transition.to中的错误。在操作方面,transition.to会发现按钮有问题,并且缓解功能代码不会启动。谢谢。我意识到我写得不是很清楚,但我知道代码中的错误在哪里;我的问题更像是:为什么科罗纳不能提供一份像样的报告?在我的项目中,我发现了缺失的过渡=纯属偶然。当遇到如此模糊的错误消息时,我该怎么办?
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 })