首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Roku中的导航概念

Roku中的导航概念
EN

Stack Overflow用户
提问于 2019-06-13 16:15:50
回答 4查看 581关注 0票数 3

我在Roku Brightscript的屏幕导航中遇到了一些问题。任何人,请帮助我如何在我的Roku项目中管理5-6个屏幕。我想从1个屏幕导航到2个屏幕,也想从那个屏幕返回。这是我在过去6个月中遇到的一些主要问题。我不能做这件事。你方的一些帮助帮助我理解。

目前,我已经尝试了以下步骤

1-如果我想转到2个屏幕,那么我将执行以下部分

代码语言:javascript
复制
   m.top.AppendChild(m.secondscreen)
   m.secondscreen.setFocus(true)
   m.secondscreen.visible="true"

2-当我在第二个屏幕上单击back键时,我将返回false,这样它就会返回到第一个屏幕,在这里我将这样做

代码语言:javascript
复制
   m.secondscreen.setFocus(false)
   m.secondscreen.visible="false"
   return true

在这里,它将来到第一个屏幕。所以像这样,我将转到所有页面。但我知道这不是Roku的确切过程。所以我在做this.and时遇到了很多困难,我不能按照上面的步骤从5个屏幕移动到1个屏幕,所以如果你have.it,请任何人告诉我一些例子,我将不胜感激。

EN

回答 4

Stack Overflow用户

发布于 2019-06-14 06:19:27

我假设您的m.secondscreen是一个"roSGScreen“组件,如果是这样,那么您是正确的。一个Roku场景图应用程序应该只创建一个"roSGScreen“。

“屏幕”的概念是令人困惑的,因为您可以创建许多组件,这些组件可以被认为是“屏幕”,而实际上它们只是视图。您的唯一场景应该控制活动视图(子组件,而不是roSGScreens),并可以根据用户操作根据需要附加/分离或显示/隐藏子组件。

从技术上讲,我非常确定你想要管理5个视图,而不是5个屏幕。

我建议花一些时间阅读SDK文档教程中的示例应用程序,以了解更多相关信息。

票数 4
EN

Stack Overflow用户

发布于 2019-07-26 06:50:39

我在一些已发布的通道上使用了Roku提供的视图堆栈组件。

我鼓励你使用它,它将使屏幕处理变得更容易。

请参阅Github Sample Docs

可能一开始,设置可能会很痛苦,但肯定的是,随着应用程序的不断增长,它的可伸缩性更强。

要显示屏幕,您可以这样调用它:

代码语言:javascript
复制
viewOne = CreateObject("roSGNode", "customScreen")
m.top.ComponentController.CallFunc("show", {
  view: viewOne
})

要手动关闭屏幕,您只需将属性" close“更改为true。

代码语言:javascript
复制
viewOne.close = true

您可以继续调用show方法,它会将所有这些视图追加到堆栈中。

您还可以通过让组件控制器处理您的屏幕堆栈来获得一些功能:

·currentView -链接到ViewStack当前显示的视图(此视图表示ViewStack显示的视图。

·allowCloseChannelOnLastView -如果为true,则在按下back按钮或前一个视图将视图的close字段设置为true时关闭通道

·allowCloseLastViewOnBack -如果为true,则关闭当前视图,用户可以通过新视图的wasClosed回调打开另一个视图

注意,如果显示另一个没有使用ViewStack的视图,它将不会反映在堆栈上,或者可以被当前视图引用访问。)

===============UPDATE==========

使用原始问题的示例代码(假设您设置了视图堆栈):

代码语言:javascript
复制
' To show the second screen
m.top.ComponentController.CallFunc("show", {
      view: m.secondView
})

' to show another view on top.
m.thirdView = CreateObject("roSGNode", "thirdView")
m.top.ComponentController.CallFunc("show", {
      view: m.thirdView
})
' to close third screen and go back to second screen
m.thirdView.close = true
票数 3
EN

Stack Overflow用户

发布于 2019-06-13 16:54:52

在你的代码中添加一件事:

m.secondscreen.close = true return true

Roku导航首先需要关闭屏幕。第一个屏幕关闭后,第二个屏幕将打开。绝对是工作上的事。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56576199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档