如何将 Roku Scenegraph GridView 转换为小写

How to convert Roku Scenegraph GridView to lower case

我正在开发场景图 GridView 应用程序。所有的行项目都是小写的。

我想将它们转换为大写。

我正在使用 Roku Scenegraph Developer Extensions。 (SGDex)

我试过在 RowAA 上使用 UCase。这确实将标题更改为大写,但它破坏了脚本。

即...

标题:UCase(fieldInJsonAA)

    if fieldInJsonAA = "movies" or fieldInJsonAA = "series"

        mediaItemsArray = jsonAA[fieldInJsonAA]
        itemsNodeArray = []
        for each mediaItem in mediaItemsArray
            itemNode = ParseMediaItemToNode(mediaItem, fieldInJsonAA)
            itemsNodeArray.Push(itemNode)
        end for
        rowAA = {
           'title: fieldInJsonAA
           title: UCase(fieldInJsonAA)
           children: itemsNodeArray
        }

我在示例中尝试的方法确实将行标题更改为大写。但是,它破坏了脚本。

你能试试这样吗:

rowAA = {}
rowAA.title = UCase(fieldInJsonAA)
rowAA.children = itemsNodeArray

rowAA = {}
rowAA["title"] = UCase(fieldInJsonAA)
rowAA["children"] = itemsNodeArray

编辑: 我最初了解到脚本无法编译。

我注意到,在您的 ParseMediaItemNode 方法中,您传递的是不带大写字母的 fieldInJsonAA,然后在它之后的 rowAA 中传递的是相同的 fieldInJsonAA,但使用的是大写字母。也尝试在 ParseMediaItemNode 中以大写形式传递它并检查会发生什么。这是一个大胆的猜测,因为我对您正在使用的脚本了解不多。

我明白了。默认情况下,DetailsView 期望行标题为小写,因此在我更改它时它省略了 'play' 或 'episode' 按钮。

通过如下更改详细信息视图,这允许脚本 运行 使用大写或小写。

详情查看...

`''' Default Code''' 

if currentItem.url <> invalid and currentItem.url <> "" 
    buttonsToCreate.Push({ title: "Play", id: "play" }) 
else if details.content.TITLE = "series" 
    buttonsToCreate.Push({ title: "Episodes", id: "episodes" }) 
end if 

''''''''

''' Updated Code that works with lower or upper case''' 

if currentItem.url <> invalid and currentItem.url <> "" 
    buttonsToCreate.Push({ title: "Play", id: "play" }) 
else if details.content.TITLE = "series" 
    buttonsToCreate.Push({ title: "Episodes", id: "episodes" }) 
else if details.content.TITLE = "SERIES" 
    buttonsToCreate.Push({ title: "Episodes", id: "episodes" }) 
end if 

''''''''`