1

ストーリーボードファイルがあり、ストーリーボードが実装されているファイルの名前を参照して、同じベース名の構成ファイルをロードできるようにします。

これは、というファイルにある例です。scene001.lua

-- Called when the scene's view does not exist:
function scene:createScene( event )
    local screenGroup = self.view

    local json = require("json")
    -- load the book definition file
    local contents = textFromFile("scene001.json")
    local page = json.decode(contents)
    image = buildPage(page)
    screenGroup:insert(image)
    image.touch = onSceneTouch
end

ご覧のとおり、をハードコーディングする必要があります"scene001.json"。現在のストーリーボードと同じ名前の構成ファイルをロードしたいのですが、これを動的に行うにはどうすればよいですか?

4

2 に答える 2

2

debugライブラリ、特に関数を使用debug.getinfoして、現在のファイル名に関する情報を取得できます。単純なパターンで、.lua拡張子をに置き換え.jsonてカスタムファイルを開くことができます。

print( debug.getinfo(1,"S").short_src ) --> /path/to/scene001.lua.
于 2013-01-27T21:32:41.347 に答える
0

私は実際に、パスを解析するために必要なすべての正規表現の愚かさなしに、これを行うためのより良いより公式な方法を見つけました。を使用することによる潜在的なパフォーマンスへの影響についてdebug.getinfo()

storyboard.getCurrentSceneName()

于 2013-01-29T06:30:52.500 に答える