如何清空brightscript中全局roArray的内容?

How to clear the contents of global roArray in brightscript?

我创建了 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 的内容?

您不能直接修改全局节点中 array/associative 数组中的元素。您必须访问该对象,对其进行修改并将其保存回全局字段(有关详细信息,请参阅 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 将 return [1, 0, 3]

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

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

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

m.global.guideColumnSize = invalid

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

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