如何结合Scenegraph开发人员扩展(SGDEX)

时间:2019-08-04 01:11:11

标签: roku brightscript scenegraph

新的Roku Scenegraph开发人员扩展似乎非常有用。我有两个SGDEX视图对我有用。但是,我需要将它们组合在一起,并且看不到有关如何执行操作的任何文档。

Custom + Scene示例就是我正在研究的内容。只需添加一下即可将searchView功能添加到此脚本中。

我尝试将SearchView作为组件添加。但是searchview示例是它自己的工作页面,我想将其添加为节点。我尝试过将其添加为突出部分,也尝试过将其添加为主页上的按钮。我都失败了。

请参阅Scenegraph开发人员扩展。

我只需要将SearchView功能添加到SGDEX中的Custom + Scene示例中。如果您熟悉的话,请提供如何执行此操作的示例。谢谢。

1 个答案:

答案 0 :(得分:1)

已更新

看起来我们想要实现的是从custom + screen示例的主场景中打开searchView。

我更新了项目的feed.json文件,并在“系列”对象之后添加了一个新对象。

 ...
 ...
 "search": [
        {
            "id": "search",
            "title": "Search",
            "releaseDate": "2015-06-11",
            "shortDescription": "Will open search view.",
            "thumbnail": "http://level2creative.com/wp-content/uploads/2017/08/image-search-ss-1920-800x450.gif",
            "genres": [
                "search"
            ],
            "tags": [
                "search"
            ],
            "content": {
                "dateAdded": "2015-06-11T14:14:54.431Z",
                "captions": [],
                "videos": [
                    {
                        "url": "http://roku.content.video.llnw.net/smedia/59021fabe3b645968e382ac726cd6c7b/Gb/siCt-V7LOSU08W_Ve1ByJY5N9emKZeXZvnrH2Yb9c/117_segment_2_twitch__nw_060515.mp4",
                        "quality": "HD",
                        "videoType": "MP4"
                    }
                ],
                "duration": 53
            }
        }
    ]

在您的GridHandler.brs上,更改ParseJsonToNodeArray函数,让我们更改第27行的if条件,因此它将如下所示:

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

然后,在您的mainscene.brs上,转到方法“ OnGridItemSelected”,将其更改为类似以下内容:

rowContent = grid.content.GetChild(selectedIndex[0])
if rowContent.title = "search"
    searchView = CreateObject("roSGNode", "SearchView")
    searchView.hintText = "Search for something"
    m.top.ComponentController.CallFunc("show", {
        view: searchView
    })
else
    detailsView = ShowDetailsView(rowContent, selectedIndex[1])
    detailsView.ObserveField("wasClosed", "OnDetailsWasClosed")
end if

这将打开searchView,如果您按回去,则应关闭searchView并将用户带回到gridView。

Docs