我创建了roArray并将其添加到如下所示的全局范围中
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中修改或清除全局roArray的内容吗?
答案 0 :(得分:2)
要清除或删除Brightscript中的全局变量,请使用以下代码
m.global.guideColumnSize = invalid
或
m.global.setFields({guideColumnSize : invalid})
您可以重新初始化roArray对象并将其存储到相同的全局变量
答案 1 :(得分:1)
您不能直接在全局节点中修改数组/关联数组中的元素。您必须访问该对象,对其进行修改,然后将其保存回全局字段(请参见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
。