嗨,我刚刚开始使用Roku开发.我下载了sdk,并一直在尝试运行一个hello world应用程序.我有一个源文件夹和一个清单文件.但我仍然收到以下错误:
错误:安装失败:没有清单.无效的包.安装失败:没有清单.
这是hello world的代码:
sub Main()
' create our screen
screen = CreateObject("roPosterScreen")
' setup a message port so we can receive event information
port = CreateObject("roMessagePort")
screen.SetMessagePort(port)
' change the screen's message text
screen.ShowMessage("Hello World!")
screen.Show()
' start our event loop
while true
msg = Wait(0, port) ' wait for an event
if type(msg) = "roPosterScreenEvent"
' we got a poster screen event
if msg.isScreenClosed()
' the user closed the screen
exit while
end if
end if
end …Run Code Online (Sandbox Code Playgroud) Roku 论坛上提供了此差异。但我不明白。有谁知道这个区别及其属性?
给定一个 roArray:
found = CreateObject("roArray", 0, true)
found.push("a")
found.push("b")
found.push("c")
Run Code Online (Sandbox Code Playgroud)
检查值的最佳方法是什么s = "s"?
roku / brightscript开发的新手:是否可以向全局关联数组(可由所有组件访问)添加一个对象,该对象的方法定义为属性之一,然后调用该方法?
Main.brs:
function Main()
init()
end function
function init()
screen = createObject("roSGScreen")
m.port = createObject("roMessagePort")
screen.SetMessagePort(m.port)
scene = screen.CreateScene("MainController")
screen.show()
o = {
getName: function() as string
return "John"
end function
}
setUpGlobal(screen)
m.global.addFields({mainMethods: o})
while(true)
msg = wait(0, m.port)
msgType = type(msg)
if msgType = "roSGScreenEvent"
if msg.isScreenClosed() then exit while
end if
end while
end function
function setUpGlobal(p_screen as Object)
m.global = p_screen.getGlobalNode()
m.global.id = "GlobalNode"
end function
Run Code Online (Sandbox Code Playgroud)
..然后在另一个MainController中,在运行任务并返回数据后...
MainController.brs
function init()
loadConfig()
end function
function …Run Code Online (Sandbox Code Playgroud) 因此,对于工作中的项目,我们的任务是为客户创建Roku应用程序.很抱歉,如果这是一个愚蠢的问题,但我从未接触过一般的brightscript或Roku开发,而且我主要是一个反应/ javascript开发人员.
我正在插入我的方式,现在我正在尝试创建一个scenegraph组件来显示一个键盘,并在下面显示一个ButtonGroup.按钮组主要用于选择提交键盘文本字段中的内容,或取消输入.
到目前为止,我将组件渲染和焦点中的所有元素都设置到键盘上(这似乎是必要的,否则,只需按下遥控器上下键盘就无法选择键盘).
但是,当在键盘周围导航时,我找不到任何方法将焦点移动到按钮组.基本上,如果我按下键盘底行的遥控器,它什么都不做.它永远不会将焦点移动到buttongroup.
我只是希望有人可以帮我解决这个问题.我知道答案可能是显而易见的,我只是错过了,但是我整个上午都在反对这个问题,摆弄一些事情,我似乎无法弄明白.
下面是一个包含键盘和按键组件的组件示例.随意批评你看到的任何其他事情我也做得很糟糕,再说一遍,我对Roku dev没有真正的线索.
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2016 Roku Corp. All Rights Reserved. -->
<component name="MemberEmail" extends="Group">
<children>
<LayoutGroup id="MemberEmailLayout" translation = "[ 0, 0 ]" itemSpacings="[20]">
<Keyboard id="EmailKeyboard" />
<ButtonGroup id="EmailButtonGroup" />
</LayoutGroup>
</children>
<script type = "text/brightscript" >
<![CDATA[
sub init()
m.parentNode = m.top.getParent()
m.memberEmailLayout = m.top.findNode("MemberEmailLayout")
m.emailKeyboard = m.top.findNode("EmailKeyboard")
m.emailButtonGroup = m.top.findNode("EmailButtonGroup")
m.emailButtonGroup.buttons = ["Submit", "Cancel"]
m.emailButtonGroup.observeField("buttonSelected","buttonPressed")
emailKeyboardRect = m.memberEmailLayout.boundingRect()
emailKeyboardCenterX = (1920 - emailKeyboardRect.width) / 2
emailKeyboardCenterY = (1080 …Run Code Online (Sandbox Code Playgroud) 我想要一个需要使用接口实现模型调用的函数。我读到 roku 在 BrightScript 文档的接口部分内提供了一个函数。所以我尝试了但失败了。有人可以帮助我吗?
这是我能够重现这个问题的最小片段.
Sub Main()
u = getStringFromKeyboard("Enter username")
p = getStringFromKeyboard("Enter password")
End Sub
Function getStringFromKeyboard(message = "" As String) As String
result = ""
port = CreateObject("roMessagePort")
screen = CreateObject("roKeyboardScreen")
screen.SetMessagePort(port)
screen.SetDisplayText(message)
screen.AddButton(1, "OK")
screen.Show()
while true
print "waiting..."
msg = wait(0, port)
print "done waiting"
if type(msg) = "roKeyboardScreenEvent" then
if msg.GetIndex() = 1 then
result = screen.GetText()
exit while
end if
end if
end while
screen.Close()
return result
End Function
Run Code Online (Sandbox Code Playgroud)
Roku将正确提示用户名,但在提示输入密码之前只会退出主菜单.调试输出表明应用程序在第二次调用wait()时正在进行borking:
waiting...
done waiting
waiting...
Run Code Online (Sandbox Code Playgroud)
这是SDK v4.1和OS v4.2.1006. …
在为Roku开发安装BrightScript Eclipse插件之后,它的作用就像它安装得很好但在Eclipse中的任何地方都看不到.我究竟做错了什么?
我有一个使用Java和cpp代码的android流媒体客户端应用程序.我想将我的应用程序移植到Roku.据我所知,Roku建议只使用BrightScript进行应用开发.
1)根据这个链接(Roku中的C/C++开发),可以使用marmalade用cpp编写游戏应用程序并为Roku编译.
2)但是这个链接(Roku应用程序与Marmalade一起开发的可行性如何?)清楚地说,橘子酱不能用于流应用程序.
3)我的问题是(A)是否可以为roku编译cpp?
(B)我在哪里可以找到用于建造的工具链?
(C)如果使用BrightScript开发UI,我该如何从中调用cpp函数?
我正在为 Roku Scene Graph 应用程序工作,我想编写全局用户定义的函数,该函数可以在我的应用程序中的任何位置使用和调用。有什么办法吗?请建议。