有时,当应该返回invalid
或string
的BrightScript函数返回时,它既不返回无效也不返回字符串,而是(看起来像它(返回类型Function
。我一直无法追踪为什么或何时,但对于何时似乎很武断。这是这样一个功能。
function RegRead(key, section = invalid)
if section = invalid section = "Default"
sec = CreateObject("roRegistrySection",section)
if sec.Exists(key)
return sec.Read(key)
end if
return invalid
end function
我称之为这样的
val = RegRead("code")
这是怎么回事?这是一个BrightScript错误吗?
我可能已经找到了罪魁祸首:名称冲突。我有这样的功能
function Code()
' bla bla bla
end function
。这意味着我不能在同一脚本中的其他地方拥有相同命名的变量。😱
将上述名为 Code 的函数命名为代码,我无法在其他地方执行此操作:
sub Somethingelse()
code = FetchValue()
end sub
由于变量名code
会与函数冲突 Code()
. 😥
这里调用函数
m.top.GlobleURL = GetAuthData() ' Call Read Function in Globle Variable
print "Read URL : " + m.top.GlobleURL
SetAuthData(Serverurl) ' Call write Function in Seturl
'这里是读取函数
Function GetAuthData() As Dynamic
' reg = CreateObject("roRegistry")
sec = CreateObject("roRegistrySection", "Authentication")
' print "section : " + Authentication
if sec.Exists("Authentication")
print "Read URL : " + m.top.GlobleURL
print " ****************** DATA :" + m.top.GlobleURL
return sec.Read("Authentication")
'return sec.Delete("Authentication") ' Here not override concept so compalsary delete first and after again second URL Store pannel.brs and hud.brs both file
print "***********************GetAuthData************************"
endif
return invalid
End Function
这里是写入函数
Function SetAuthData(Serverurl As String) As Void
' reg = CreateObject("roRegistry")
sec = CreateObject("roRegistrySection", "Authentication")
m.top.GlobleURL = Serverurl
' if not m.top.GlobleURL = Serverurl
sec.Write("Authentication", m.top.GlobleURL)
?"key for the URL" sec.GetKeyList()
Print "Write URL :" + m.top.GlobleURL
' end if
print "***********************SetAuthData************************"
' Flush(true)
End Function
您始终在调用时将函数中的参数作为参数传递,并且在写入函数时不传递任何参数,然后只需声明一个变量并初始化它。