Как преобразовать Roku Scenegraph GridView в нижний регистр - PullRequest
0 голосов
/ 22 сентября 2019

Я работаю над приложением GridView для работы со сценографом.Все элементы строки строчные.

Я хотел бы преобразовать их в верхний регистр.

Я использую Roku Scenegraph Developer Extensions.(SGDex)

Я пытался использовать UCase на RowAA.Это действительно изменяет заголовок на Upper Case, но это нарушает сценарий.

ie ...

title: 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
        }

Метод, который я пробовалв примере меняет заголовок строки на верхний регистр.Однако это нарушает сценарий.

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Я понял это.По умолчанию DetailsView ожидает, что заголовок строки будет в нижнем регистре, поэтому он не использовал кнопку «play» или «эпизод», когда я его изменил.

Изменяя представление Details следующим образом, это позволяетскрипт для запуска в верхнем или нижнем регистре.

Подробный просмотр ...

`''' 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 

''''''''`
0 голосов
/ 22 сентября 2019

Можете ли вы попробовать что-то вроде этого:

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

Или

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

РЕДАКТИРОВАТЬ: я изначально понял, что скрипт не компилируется.

Что я заметил, так это то, что в вашем методе ParseMediaItemNode вы передаете fieldInJsonAA без upperCase, а затем после него в rowAA. Вы передаете то же поле InJsonAA, но с заглавными буквами.Попробуйте также передать его в верхнем регистре в ParseMediaItemNode и проверьте, что происходит.Это дикое предположение, так как я не знаю много о сценарии, который вы используете.

...