【问题标题】:Roku How to get standard input in Main.brsRoku 如何在 Main.brs 中获取标准输入
【发布时间】:2017-09-11 06:02:18
【问题描述】:

我正在编写一个 Roku 应用程序,我需要从标准输入中读取一个字符串。我知道要打印到标准输出,我可以使用函数print,但我需要为启动脚本的用户提供在运行时插入新参数的可能性,例如(伪代码):

print "Enter server IP: "
string ip = getline();
print "Server IP " + ip

有办法吗?

【问题讨论】:

  • 从标准输入读取是什么意思?通道不是由命令行启动的。

标签: input scanf roku brightscript


【解决方案1】:

您需要将 Keyboad*** 组件添加到您的 Scene.xml 文件中:

<Keyboard
    id = "keyboard" 
/>

然后在 Scene.xml 中添加一个 Button 组件,在 Scene.brs - init() 函数中声明它并在“buttonSelected”上设置观察者字段。同时声明键盘并设置焦点:

初始化():

m.keyboard = m.top.findNode("keyboard")
m.keyboard.setFocus(true)
m.button = m.top.findNode("button")
m.button.observeField("buttonSelected","onButtonSelected")

然后创建一个 Sub 以在按下按钮时从键盘获取用户输入:

Sub onButtonSelected()
    print m.keyboard.textEditBox.text
End Sub

***请注意,键盘组件已内置 TextEditBox,因此您不必在 Scene.xml 文件中手动添加它。

【讨论】:

    【解决方案2】:

    Roku 开发中没有“标准输入”概念。不过,您的代码可以通过多种方式获取外部输入。

    一个是上面提到的@U-Mitic - 使用带有遥控器键盘输入的组件,如roKeyboardScreenKeyboardDialog RSG节点等。

    另一种方法是使用 ECP(Roku 的外部控制协议)通过 http 向外部发送此类信息 - /input 或 /launch w/params

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多