在Corona中获取故事板所在文件的名称?

我有一个故事板文件,并希望引用实现故事板的文件名,以便我可以加载相同基本名称的配置文件。

以下是一个示例,位于名为scene001.lua的文件中:

`` `

  • 当场景的视图不存在时调用: function scene:createScene(event)      local screenGroup = self.view

     local json = require(“json”)      - 加载书的定义文件      local contents = textFromFile(“scene001.json”)      local page = json.decode(contents)      图像= buildPage(page)      screenGroup:插入(image)      image.touch = onSceneTouch end

`` `

正如您所看到的,我必须硬编码“scene001.json”。我想动态加载与当前故事板具有相同名称的配置文件,我该如何做?

点赞
用户1008957
用户1008957

你可以使用 debug 库,特别是 debug.getinfo 函数,来检索关于当前文件名的信息。然后,你可以使用一个简单的模式,将 .lua 扩展名替换为 .json,以打开你的自定义文件。

打印( debug.getinfo(1,"S").short_src ) --> /path/to/scene001.lua.
2013-01-27 21:32:41
用户88888888
用户88888888

我实际上发现了一种更好的、更官方的方法来完成这个操作,而不需要解析路径所需的所有正则表达式。关于使用debug.getinfo()可能会产生的潜在性能影响。

storyboard.getCurrentSceneName()

2013-01-29 06:30:52