如何结合 Scenegraph Developer Extensions (SGDEX)

How to combine Scenegraph Developer Extensions (SGDEX)

新的 Roku 场景图开发人员扩展似乎非常有用。我有两个对我有用的 SGDEX 视图。但是我需要将它们结合起来,但我没有看到任何关于如何操作的文档。

Custom+Scene 示例是我正在处理的内容。简单地说,我会添加以将 searchView 功能添加到此脚本。

我尝试将 SearchView 添加为组件。但是 searchview 示例是它自己的工作页面,我想将它添加为一个节点。我试过将它添加为悬垂,也尝试将它添加为主页上的按钮。我都没有成功。

请参阅场景图开发人员扩展。

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

已更新

看起来我们想要实现的是从自定义+屏幕示例的主场景打开searchView。

我更新了项目的feed.json文件,在"series"对象后添加了一个新对象

 ...
 ...
 "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