roku/brightscriptの新機能:グローバル結合配列(すべてのコンポーネントからアクセス可能)にオブジェクトを追加することは可能ですか?そのメソッドはプロパティの1つとして定義されており、そのメソッドを呼び出しますか?匿名関数をグローバル連想配列プロパティに割り当てることはできますか?
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
...その後、別のメインコントローラで、タスクを実行し、データを返した後...
MainController.brs
function init()
loadConfig()
end function
function loadConfig()
m.config = createObject("roSGNode", "Configurator")
m.config.observeField("done", "onConfigLoaded")
m.config.observeField("fail", "onConfigError")
end function
function onConfigLoaded()
print "config loaded: " + m.global.mainMethods.getName()
end function
function onConfigError()
print "config failed to loaded"
end function
それはラインを打ちますMainControllerの16、私はこれを得る:
BrightScriptコンポーネントまたはインターフェイスでメンバー関数が見つかりません。 PKG内 (ランタイムエラー& HF4):/components/MainController.brs(16)
は、これがそうかどうかこれについてコメントしないでください/実行することはできませんができるかの単なる一般的なテストです「良い習慣」であるか否か。私はそれが可能かどうかを知りたいのですが、もしそうなら、私はここで何が欠けていますか?助けをありがとう
答えとしてマークしてください - 詳細な説明をいただきありがとうございます!私はフォーラムに向かうだろう... :) – neoRiley