【发布时间】:2026-01-03 08:55:01
【问题描述】:
我正在尝试创建一个文本显示,但由于某种原因,对象的宽度为零,尽管它有文本。这是我的代码:
文件1.lua:
local myTextDisplay = display.newText("2", display.contentWidth / 2, display.contentHeight / 2, native.systemFontBold)
文件2.lua:
local myTextDisplay = File1:getTextDisplay() --function in File1.lua that returns myTextDisplay
print("Displayed text: " .. myTextDisplay.text)
if myTextDisplay.isVisible then print("Text display is visible") end
print("Text display width: " .. myTextDisplay.width)
我第一次打开 File2 场景时,它工作正常,并且打印出来:
Displayed text: 2
Text display is visible
Text display width: 10.6599...
但是,当我第二次打开同一个场景时(它没有被回收),最后一个打印语句会导致运行时错误:
Displayed text: 2
Text display is visible
Runtime error
C:\....myGame.lua:20: attempt to concatenate field 'width' (a nil value)
这怎么可能?如果显示对象包含文本,它怎么可能有零宽度?这是否与每次打开未回收的 File2 场景时都获得相同的显示对象有关?任何建议表示赞赏!
【问题讨论】:
-
对象的文本只是一个属性。与宽度相同。您确实可以在具有 nil 宽度的同时拥有文本。问题是为什么宽度为零。我认为您应该提供更多代码。尤其是从 file1 到 file2 的部分。
标签: mobile lua coronasdk displayobject