【发布时间】:2018-05-05 02:55:35
【问题描述】:
我正在为 Roku Scene Graph 应用程序工作,我想编写全局用户定义函数,该函数可以在我的应用程序中的任何位置使用和调用。有什么办法吗?请提出建议。
【问题讨论】:
-
没有自动方法,但您可以在所有组件中包含相同的源文件,因此相同的功能将被编译到它们中 - 如下@U.Mitic 详细说明
标签: roku brightscript scenegraph
我正在为 Roku Scene Graph 应用程序工作,我想编写全局用户定义函数,该函数可以在我的应用程序中的任何位置使用和调用。有什么办法吗?请提出建议。
【问题讨论】:
标签: roku brightscript scenegraph
如果要使用全局函数脚本,则必须在每个 XML 文件中包含它。
步骤:
在 /source 中创建一个名为 globalFunction.brs(或您选择的任何名称)的 brs 文件,并在其中编写所有全局函数。
在每个 XML 文件(自定义屏幕、布局元素等)中,在 <interface/> 之后和 <children/> 之前包含以下脚本:
<script type="text/brightscript" uri="pkg:/source/globalFunction.brs" />
【讨论】:
根据另一个答案中globalFunction.brs 的大小和用途,可以将所有功能移动到所谓的“长时间运行的任务”中并使用接口函数。从那里使用:
m.referenceToTask.callFunc("myFunc",
{param1 : parmvalue1,
param2 : parmvalue2})
它增加了大约 2 毫秒的时间来完成这项工作。也许值得,也许不值得。 YMMV :)
【讨论】:
我建议创建一个基础组件,您的所有其他组件都将从该基础组件扩展。包括包含您要在该组件中使用的功能的脚本。
您可以创建一个 AA 并让每个键对应一个功能。您不能将此 AA 设置为全局节点(或任何节点)上的字段。
【讨论】: