Olá, Rafael.
Tive este mesmo problema, postei a solução no software público:
http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/forums/message-view?message_id=11549417
Mas vou colocar o exemplo aqui para facilitar:
Note que as duas mídias lua devem estar iniciadas para este
procedimento funcionar.
Abs,
Rafael Peres.
-------------------------- NCL -----------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Generated by NCL Eclipse -->
<ncl id="teste" xmlns="
http://www.ncl.org.br/NCL3.0/EDTVProfile">
<head>
<connectorBase>
<causalConnector id="onBeginStart">
<simpleCondition role="onBegin"/>
<simpleAction max="unbounded" role="start"/>
</causalConnector>
<causalConnector id="onEndAttributionSet">
<connectorParam name="var"/>
<simpleCondition role="onEndAttribution"/>
<simpleAction role="set" value="$var"/>
</causalConnector>
</connectorBase>
</head>
<body>
<port component="um" id="dPort"/>
<media id="um" src="um.lua">
<property name="propriedadeUm"/>
</media>
<media id="dois" src="dois.lua">
<property name="propriedadeDois"/>
</media>
<link xconnector="onBeginStart">
<bind component="um" role="onBegin"/>
<bind component="dois" role="start"/>
</link>
<link xconnector="onEndAttributionSet">
<bind component="um" interface="propriedadeUm"
role="onEndAttribution"/>
<bind component="dois" interface="propriedadeDois"
role="set">
<bindParam name="var" value="$get"/>
</bind>
<bind component="um" interface="propriedadeUm" role="get"/
>
</link>
</body>
</ncl>
----------------------------------------------------------------
------------------------ um.lua ---------------------------
function handler (evt)
if evt.class ~= 'ncl' then return end
if evt.type == 'attribution' then
print("Atribuicao executada em um.lua")
return
end
print("Iniciando eventos...")
local evt = {
class = 'ncl',
type = 'attribution',
name = 'propriedadeUm',
}
evt.value = "Rafael"
evt.action = 'start';
event.post(evt)
evt.action = 'stop';
event.post(evt)
end
event.register(handler)
----------------------------------------------------------------
----------------------- dois.lua --------------------------
function handler (evt)
if evt == nil then
print("evt veio nil!!!")
return
end
if evt.type == 'attribution' then
if
evt.name == 'propriedadeDois' then
print("Dois recebeu o valor: ", evt.value)
return
end
end
print("passou direto!!")
end
event.register(handler)
----------------------------------------------------------------