【问题标题】:How to write global function in brightscript?如何在brightscript中编写全局函数?
【发布时间】:2018-05-05 02:55:35
【问题描述】:

我正在为 Roku Scene Graph 应用程序工作,我想编写全局用户定义函数,该函数可以在我的应用程序中的任何位置使用和调用。有什么办法吗?请提出建议。

【问题讨论】:

  • 没有自动方法,但您可以在所有组件中包含相同的源文件,因此相同的功能将被编译到它们中 - 如下@U.Mitic 详细说明

标签: roku brightscript scenegraph


【解决方案1】:

如果要使用全局函数脚本,则必须在每个 XML 文件中包含它。

步骤:

  1. /source 中创建一个名为 globalFunction.brs(或您选择的任何名称)的 brs 文件,并在其中编写所有全局函数。

  2. 在每个 XML 文件(自定义屏幕、布局元素等)中,在 <interface/> 之后和 <children/> 之前包含以下脚本:

<script type="text/brightscript" uri="pkg:/source/globalFunction.brs" />

【讨论】:

    【解决方案2】:

    根据另一个答案中globalFunction.brs 的大小和用途,可以将所有功能移动到所谓的“长时间运行的任务”中并使用接口函数。从那里使用:

        m.referenceToTask.callFunc("myFunc", 
    {param1 : parmvalue1, 
    param2 : parmvalue2})
    

    它增加了大约 2 毫秒的时间来完成这项工作。也许值得,也许不值得。 YMMV :)

    【讨论】:

      【解决方案3】:

      我建议创建一个基础组件,您的所有其他组件都将从该基础组件扩展。包括包含您要在该组件中使用的功能的脚本。

      您可以创建一个 AA 并让每个键对应一个功能。您不能将此 AA 设置为全局节点(或任何节点)上的字段。

      【讨论】:

        猜你喜欢
        • 2018-01-22
        • 1970-01-01
        • 2012-05-09
        • 2017-11-05
        • 2016-08-02
        • 2018-08-28
        • 1970-01-01
        • 2018-06-26
        • 1970-01-01
        相关资源
        最近更新 更多