我正在创建一个 roku 频道。我需要以幻灯片模式显示图像。问题是,有些图像是水平的,有些是垂直的。所以,我需要根据图像类型旋转 Poster 节点。我想知道是否有任何方法可以旋转整个屏幕,而不仅仅是海报节点。
这是我现在的 xml 代码。
<component name="PlaylistRendererScreen"
extends="Scene">
<script type="text/brightscript"
uri="PlaylistRendererScreen.bs" />
<children>
<Poster id="testPoster"
width="1920"
height="1080"
loadWidth="1920"
loadHeight="1080"
translation="[0,0]"
visible="true" />
</children>
</component>
这是我的 bs 文件:
sub init()
m.poster = m.top.findNode("testPoster")
m.mediaList = [
{ type: "image", url: "url" },
{ type: "image", url: "url" },
{ type: "image", url: "url" },
{ type: "image", url: "url" },
]
m.currentIndex = 0
m.interval = 5000 ' Interval for switching (5 seconds)
startSlideShowTimer()
showMedia()
end sub
sub startSlideShowTimer()
if (m.timer = invalid)
m.timer = createObject("roSGNode", "Timer")
m.timer.duration = m.interval / 1000
m.timer.repeat = true
m.timer.observeField("fire", "onTimerFired")
m.top.appendChild(m.timer)
end if
m.timer.control = "start" ' Start the timer
end sub
sub onTimerFired()
m.currentIndex = (m.currentIndex + 1) mod m.mediaList.count()
showMedia()
end sub
sub showMedia()
mediaItem = m.mediaList[m.currentIndex]
mediaType = mediaItem.type
mediaUrl = mediaItem.url
if (mediaType = "image")
displayImage(mediaUrl)
else if (mediaType = "video")
' Create video display here.
end if
end sub
sub displayImage(url as string)
if (m.poster <> invalid)
m.poster.uri = url
m.poster.visible = true
else
print "Error: Poster node not found."
end if
startSlideShowTimer()
end sub
我尝试将旋转添加到海报节点中。但这没有用。事实上,我连图像都看不到。我还尝试在该组节点中添加组节点和海报。然后我在组中添加了旋转,我设法看到图像,但旋转不正确。