Nouveau dans le développement de roku/brightscript: Est-il possible d'ajouter un objet au tableau associatif global (accessible par tous les composants), dont une méthode est définie comme l'une des propriétés, et d'appeler cette méthode?Est-il possible d'affecter une fonction anonyme à une propriété globale de tableau associatif?
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
.. puis dans une autre MainController, après l'exécution d'une tâche et les données de retour ...
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
Quand il frappe la ligne 16 de MainController, je reçois ceci:
Fonction membre introuvable dans BrightScript Component ou l'interface. (erreur d'exécution & HF4) dans pkg: /components/MainController.brs (16)
Ceci est juste un test général de ce qui peut/ne peut pas être fait s'il vous plaît ne pas commenter si ce est "bonne pratique" ou non. Je veux juste savoir si c'est possible et si oui, qu'est-ce qui me manque ici? Merci pour toute aide
Marquer cela comme la réponse - merci pour l'explication en profondeur! Je vais me diriger vers les forums ... :) – neoRiley