三行代码  ›  专栏  ›  技术社区  ›  kadina

如何清除brightscript中的全球rorray内容?

  •  1
  • kadina  · 技术社区  · 3 年前

    我创建了Rorray并将其添加到全球范围,如下所示

    columnSize = CreateObject("roArray", 3 , true)
    m.global.addFields({guideColumnSize: columnSize})
    

    我正在将这些值添加到guidecolumnsize中,如下所示

    columnSize = m.global.guideColumnSize
    columnSize[x] = adjustColumn
    

    我可以在添加值后打印。我增加了5个值48。但我无法清除、删除或修改数组中的值。这些请求将被忽略。

    我试过

    m.global.guideColumnSize.delete(0)
    m.global.guideColumnSize.clear()
    m.global.guideColumnSize[0] = 2
    

    什么都没用。唯一可以执行的操作是在数组末尾附加值。有谁能告诉我如何修改或清除BrightScript中的Global Rorray内容?

    2 回复  |  直到 3 年前
        1
  •  2
  •   Jeswin Rebil    3 年前

    要清除或删除BrightScript中的全局变量,请使用以下代码

    m.global.guideColumnSize = invalid
    

    m.global.setFields({guideColumnSize : invalid})
    

    您可以重新初始化rorray对象并将其存储到同一全局变量中

        2
  •  1
  •   juliomalves    3 年前

    不能直接在全局节点中修改数组/关联数组中的元素。您必须访问该对象,修改它并将其保存回全局字段(请参见 https://sdkdocs.roku.com/display/sdkdoc/SceneGraph+Data+Scoping -全局范围部分)。

    假设与示例结构相同,可以执行以下操作:

    columnSize = [1, 2, 3]
    m.global.addFields({guideColumnSize: columnSize})
    
    newColumnSize = m.global.guideColumnSize
    newColumnSize[1] = 0
    m.global.guideColumnSize = newColumnSize
    

    印刷 m.global.guideColumnSize 会回来的 [1, 0, 3] .

    您刚刚错过了将修改后的数组重新分配回全局字段的步骤。

    要清除全局节点字段,可以使用 m.global.removeField("guideColumnSize") 或者简单的设置 m.global.guideColumnSize = invalid .

    推荐文章