首页 > 解决方案 > 未加载图像,当我更新 PosterGrid 中的内容时

问题描述

我在 MainScene 中使用了自定义 SGDex 视图,并使用下面的代码,我在 PostGrid 中打开了对话框。它与组节点一起扩展。

sub init()
   m.postergrid = m.top.findNode("PosterGrid")
   m.top.GlobleURL = GetAuthData("URL")
   m.readPosterGridTask = createObject("roSGNode", "ContentReader")
   m.readPosterGridTask.contenturi = "http://" + m.top.GlobleURL + "/api/DefaultAPI/?file=GoForwards.xml" 
   m.readPosterGridTask.observeField("content", "showpostergrid")
   m.readPosterGridTask.control = "RUN"
end sub 

function OpenDialog()
   m.dlg = createObject("roSGNode", "Dialog")
   m.port = createObject("roMessagePort")
   m.dlg.observeField("wasClosed", m.port)
   m.dlg.title = "Menu"
   m.dlg.buttons = ["ReverseOrder"]
   m.dlg.observeField("buttonSelected", "onVerifyOptions")
   m.dlg.getScene().dialog = m.dlg 
end function

function onVerifyOptions()
 if m.dlg.getScene().dialog.buttonSelected = 0 then
  ?"onVerifyOption() :: 0 index"
  m.readPosterGridTask.contenturi = "http://" + m.top.GlobleURL + "/api/DefaultAPI/file=ReverseOrder.xml"
  m.readPosterGridTask.observeField("content", "showpostergrid")
  m.readPosterGridTask.control = "RUN"
  m.dlg.getScene().dialog.close = true
 end if
 return true
end function

sub showpostergrid()
  m.postergrid.content = m.readPosterGridTask.content
end sub

在对话框内单击到 0 个索引。我像上面的代码一样更新内容。但是,这里的图片没有加载。之后,我刷新 Content Render。但是,当 Roku 机顶盒进入睡眠模式时。单击确定后,它开始加载。我不知道为什么会这样。同样的事情,我检查了一个场景节点。它工作正常。但是,在组节点内,我发现了这个问题。有人知道这个问题吗?

起初,我认为这将是操作系统的问题。我为此创建了另一个演示应用程序。它运作良好。但是这里对话框打开如下。

sub showdialog()
   optiondialog = CreateObject("roSGNode", "Dialog")
   optiondialog.title = "Menu"
   optiondialog.buttons = ["ReverseOrder"] 
   m.top.dialog = optiondialog
   m.top.dialog.observeField("buttonSelected", "onVerifyOptions")
   m.top.dialog.setFocus(true)
end sub

我不清楚这是 getScene() 的问题,还是我在更新内容时犯了错误。有没有其他方法可以更新 RSG 组件内容?

标签: rokubrightscript

解决方案


我认为不是
m.dlg.getScene().dialog = m.dlg

你应该使用:
m.top.dialog = m.errorDialog

同样,替换
m.dlg.getScene().dialog.close = true


m.top.dialog.close = true

你可能需要在同一点重新设置你的焦点。


推荐阅读