BrightScript 中 m 和 m.top 的区别?

Nik*_*iya 4 roku brightscript

Roku 论坛上提供了此差异。但我不明白。有谁知道这个区别及其属性?

U.M*_*tic 6

我将尝试尽可能简单地解释它:

想象一下“m”是关联数组。m.top 将是该关联数组的默认元素。像这样的东西:

m = {top : "value for top element"}
Run Code Online (Sandbox Code Playgroud)

所以现在您可以调用“m.top”并获取它的值。

每个 xml 组件在创建时都会添加自己的“m”。

一般来说 - Brightscript 中的“m.top”用于引用所使用的 xml 组件。

这就是你可以这样做的原因: m.CustomComponent = m.top.findNode("CustomComponent")

这反过来将返回 m.top 的子组件(ID 为“自定义组件”)。

这还将创建一个具有组件文件范围的变量 - m.CustomComponent。

您还可以向 .xml 组件添加接口。为了访问它,您可以使用:m.top.nameOfInterface。

要创建具有接口值的组件范围的变量,您可以使用以下命令:

m.interfaceValue = m.top.nameOfInterface

简而言之:m.CustomComponent 或 m.interfaceValue 是具有组件范围的变量。而“m”用于区分各种变量作用域。

m.top 是对组件本身的引用。

一般来说,这个概念对于数据范围界定很重要。请检查此文件(尤其是“组件范围”部分)以了解更多信息: https: //developer.roku.com/en-gb/docs/developer-program/core-concepts/data-scoping.md