有行被触摸,跳转到场景 ID 名为“Corona SDK”的场景。

我想要在行触摸时转到一个新的场景。我希望被触摸的行能够转到与id名称相同的文件名场景。我希望这不会太令人困惑。问题出现在函数rowtouch中。以下是我的代码。谢谢您的帮助。

local hike = {}
hike[1] = { name="Bell Canyon",    difficulty="Easy" }
hike[2] = { name="Donut Falls",  difficulty="Easy" }
hike[3] = { name="Hidden Peak",   difficulty="Medium" }
hike[4] = { name="Dog Lake",   difficulty="Easy" }
hike[5] = { name="Mary, Martha", difficulty="Easy" }
hike[6] = { name="Catherine",  difficulty="Easy" }

function scene:create( event )
    local sceneGroup = self.view

        local function onRowRender( event )

        local row = event.row
           local id = row.index

           row.nameText = display.newText( hike[id].name, 12, 0, native.systemFont, 45 )
           row.nameText.anchorX = 0
           row.nameText.anchorY = 0.5
           row.nameText:setFillColor( 0 )
           row.nameText.y = 50
           row.nameText.x = 25

           row.difficultyText = display.newText( hike[id].difficulty, 12, 0, native.systemFont, 24 )
           row.difficultyText.anchorX = 0
           row.difficultyText.anchorY = 0.5
           row.difficultyText:setFillColor( 0.5 )
           row.difficultyText.y = 110
           row.difficultyText.x = 25

           row.arrow = display.newText( ">", 12, 0, native.systemFont, 35 )
           row.arrow.anchorX = 0
           row.arrow.anchorY = 0.5
           row.arrow:setFillColor( .5 )
           row.arrow.y = 110
           row.arrow.x = display.contentWidth - 50

           row:insert( row.nameText )
           row:insert( row.difficultyText )
           row:insert( row.arrow )
           return true
        end

        function RowTouch( event )
            if event.phase == "release" then
                composer.gotoScene( event.target.hike[id].name )
            end
        end

        myTable = widget.newTableView
        {
            width = display.contentWidth,
            height = display.contentHeight,
            backgroundColor = { .47, .66, .53 },
            topPadding = 0,
            hideBackground = false,
            onRowRender = onRowRender,
            onRowTouch = RowTouch,
            noLines = true,
        }

        for i=1, #hike do
            myTable:insertRow{
                rowHeight = 220,
                isCategory = false,
                lineColor = { .47, .66, .53 }
            }
        end
end
点赞
用户1376249
用户1376249

尝试编写:

composer.gotoScene( hike[event.target.index].name );

徒步旅行的名称中包含空格和逗号,不是最佳文件名。

2014-09-07 14:21:36
用户1870706
用户1870706

你可能应该在“徒步旅行”表中添加一个额外的字段:

hike[1] = { name="Bell Canyon",    difficulty="Easy",  sceneName="bellcanyon" }

然后

composer.gotoScene( hike[event.target.index].sceneName )

这样,您可以拥有一个用于人类阅读的显示名称和一个专门用于作曲家场景的字符串。

2014-09-08 01:16:17