如何结合 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。
新的 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。