监听器移动到 roku 中的其他屏幕

问题描述 投票:0回答:1

我想在从 PosterGrid 选择项目时监听事件,这里是我的 XML 元素 posterGrid

 <PosterGrid 
            id = "videosGrid" 
            basePosterSize = "[ 312, 188 ]" 
            caption1NumLines = "1" 
            numColumns = "3" 
            numRows = "5" 
            itemSpacing = "[ 20, 25 ]" 
            translation = "[ 100, 200]"
          />

当像这样选择 Item 时,我已经实现了一个观察者

m.videosGrid = m.top.findNode("videosGrid")

m.videosGrid.observeField("itemSelected", "playVideo")

当选择特定视频时,这是成功调用的,但我想从主线程监听,这是一个特定的videoScreen线程,我从这段代码中打开这个videoScreen

sub ShowVideoGridScreen()
m.VideosGridScreen = CreateObject("roSGNode", "VideosScreen")
m.VideosGridScreen.ObserveField("selectedPosterIndex", "OnGridScreenItemSelected") observe postergrid field, when item is selected 
ShowScreen(m.VideosGridScreen) ' show GridScreen
end sub

sub OnVideoGridScreenItemSelected() ' invoked when GridScreen item is selected
    print "------- Video Item Is Selected -----------"
    ShowVideoScreen()
end sub

我想在这里监听事件并显示 videoScreen 来播放视频,因为我已经显示了网格屏幕。 这是 ShowVideoScreen() 函数中用于打开 playVideo 线程的代码。 无法理解这一点,如果您对此有所了解,请告诉我,或者我可以在哪里找到这些东西的任何资源。预先感谢。

xml roku brightscript scenegraph
1个回答
0
投票

m.VideosGridScreen = CreateObject("roSGNode", "VideosScreen") m.VideosGridScreen.ObserveField("selectedPosterIndex", "OnGridScreenItemSelected") 观察海报网格字段,当项目被选中时

由于您想观察“selectedPosterIndex”,请在 m.VideosGridScreen xml 中定义此字段。

<xml>
<component name="VideosScreen">
<interface>
 <field id="selectedPosterIndex" value="-1" type="integer" />
 <PosterGrid 
            id = "videosGrid" 
            basePosterSize = "[ 312, 188 ]" 
            caption1NumLines = "1" 
            numColumns = "3" 
            numRows = "5" 
            itemSpacing = "[ 20, 25 ]" 
            translation = "[ 100, 200]"
          />

</component>
</xml>

当选择项目时,您可以分配“selectedPosterIndex”字段。

© www.soinside.com 2019 - 2024. All rights reserved.