I have a technical question about links that deactivate itself.
Following what it is said at the last sentence of section 53.3, "it is
possible for a link to deactivate itself in its LinkEffect. Such an action
shall be postponed until the LinkEffect has been completely executed."
This last sentence seems problematic to me. Suppose the linkEffect
deactivate itself and then make an action that would cause the link to fire
again it it was active. Shall we understand that we would go into an
infinite loop or should we rather considered that :
The link is deactivated immediately but all remaining elementary actions
keep queued in the execution stack managed by the MHEG-5 engine.
(That's a proposal of modification for section 53.3).
To give an example suppose the following objects in a scene :
{:IntegerVar 1
:OrigValue 1
}
{:Link 2
:EventSource 0
:EventType IsRunning
:LinkEffect (
:Activate (3)
:TestVariable (1 2 0)
)
}
{:Link 3
:InitiallyActive false
:EventSource 1
:EventType TestEvent
:EventData true
:LinkEffect (
:Deactivate (3)
:Activate (4)
:TestVariable (1 1 1)
)
}
{:Link 4
:InitiallyActive false
:EventSource 1
:EventType TestEvent
:EventData true
:LinkEffect (
:Deactivate (4)
:Run (5)
)
}
{Bitmap 5
:InitiallyActive false
...
}
What would be the behaviour of this scene when it is running ?
-Link 2 is fired and activate link 3
-Link 2 testVariable action generates an event that matches both link 3 at
link 4 conditions but only link 3 is activated
-link 3 is fired and should deactivate itself (but action postponed ?...)
-link 4 is activated
-link 3 testVariable action generates a new event that matches link 3 and 4.
But here, SHALL LINK 3 BE CONSIDERED AS ACTIVE OR NOT ?
Above scene is a dummy simple example. I'm not interested in any workaround
in order not to encounter this issue.
If link 3 must still be considered as active, there is an infinite loop.
Moreover, if this is the case, I don't see any purpose of the ability for a
synchronous link to deactivate itself. It would be only useful for
asynchronous links.
Any opinion ?
Best regards,
__________________________________________________________________
Emmanuel BEUQUE mailto:ebeuque@pratique.fr
MediaServ tel: +33 (0) 2 99 64 35 64
Multimedia consultant & developer fax: +33 (0) 2 99 64 36 65