Caros amigos,
estou desenvolvendo aplicações NCLua na máquina virtual antiga (0.10-2) e quis migrar para a nova versão (0.11-2). Entre outros problemas que encontrei, um me chamou mais a atenção. O módulo event, que funcionava na versão antiga, encontrou probelmas na versão mais nova. Por esse motivo, o aplicativo que fiz não funciona como deveria e não sei como resolver o problema. Abaixo o código:
--------------------------------- teste.ncl -----------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<ncl id="teste" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
<head>
<ruleBase>
<rule id="eq1" var="choice1" comparator="eq" value="2"/>
<rule id="eq2" var="choice1" comparator="eq" value="3"/>
</ruleBase>
<regionBase>
<region id="r_telaInteira" zIndex="1"/>
</regionBase>
<descriptorBase>
<descriptor id="d_telaInteira" region="r_telaInteira" explicitDur="5s"/>
</descriptorBase>
<connectorBase>
<causalConnector id="onBeginStartDelay">
<simpleCondition role="onBegin"/>
<simpleAction role="start" delay="2s"/>
</causalConnector>
<causalConnector id="onEndStart">
<simpleCondition role="onEnd"/>
<simpleAction role="start"/>
</causalConnector>
<causalConnector id="onEndStop">
<simpleCondition role="onEnd"/>
<simpleAction role="stop"/>
</causalConnector>
<causalConnector id="onEndSet">
<connectorParam name="var"/>
<simpleCondition role="onEnd"/>
<simpleAction role="set" value="$var" max="unbounded" qualifier="seq"/>
</causalConnector>
</connectorBase>
</head>
<body>
<port id="port" component="media1"/>
<media id="lua" src="teste.lua">
<property name="property"/>
<area id="area"/>
</media>
<media type="application/x-ginga-settings" id="nodeSettings">
<property name="choice1"/>
</media>
<switch id="switch">
<bindRule rule="eq1" constituent="media2"/>
<bindRule rule="eq2" constituent="media3"/>
<media id="media2" src="videos/fig2.jpg" descriptor="d_telaInteira"/>
<media id="media3" src="videos/fig3.jpg" descriptor="d_telaInteira"/>
</switch>
<media id="media1" src="videos/fig1.jpg" descriptor="d_telaInteira"/>
<media id="media4" src="videos/fig1.jpg" descriptor="d_telaInteira"/>
<link xconnector="onBeginStartDelay">
<bind role="onBegin" component="media1"/>
<bind role="start" component="lua" interface="area"/>
</link>
<link xconnector="onEndStart">
<bind role="onEnd" component="media1"/>
<bind role="start" component="switch"/>
</link>
<link xconnector="onEndStart">
<bind role="onEnd" component="switch"/>
<bind role="start" component="media4"/>
</link>
<link xconnector="onEndStop">
<bind role="onEnd" component="media4"/>
<bind role="stop" component="lua"/>
</link>
<link xconnector="onEndSet">
<bind role="onEnd" component="lua" interface="area"/>
<bind role="get_property" component="lua" interface="property"/>
<bind role="set" component="nodeSettings" interface="choice1">
<bindParam name="var" value="$get_property"/>
</bind>
</link>
</body>
</ncl>
------------------------------------ teste.lua ---------------------------------------
function handler (evt)
if evt.class ~= 'ncl' then return end
if evt.type ~= 'presentation' then return end
if evt.label ~= 'area' then return end
local out = {class = 'ncl', type = 'attribution',name="property", value = '0'}
out.value= '2'
out.action = 'start'
for k,v in pairs(out) do
print(k,v)
end
event.post(out)
out.action = 'stop'
for k,v in pairs(out) do
print(k,v)
end
event.post(out)
evt.action = 'stop'
event.post(evt)
end
event.register(handler)
Como disse, na 0.10-2 o programa funciona perfeitamente. Infelizmente, na 0.11-2 apresentou problemas.
Agradeço qualquer ajuda ou dica.
Abraços
Autor: Mateus Sousa Dias
33 comentários
<descriptor id="d_lua" region="r_telaInteira"/>
<descriptor id="d_telaInteira" region="r_telaInteira" explicitDur="5s"/>
</descriptorBase> <media id="lua" src="teste.lua" descriptor="d_lua">
<property name="property"/>
<area id="area"/>
</media> A aplicação continua funcionando perfeitamente na máquina 0.10, a máquina 0.11 insiste no problema. Continuo estudando e esperando sugestões. Abraço a todos.