Re: OnStartUp actions

Emmanuel BEUQUE (ebeuque@pratique.fr)
Fri, 24 Oct 1997 19:38:06 +0200

À (At) 17:01 +0200 24/10/97, Andreas Kraft écrivait (wrote) :
>and again a question about a confusing specification in the standard document:
>
>In the Activation behaviour of the Group Class (9.3) it is stated:
>
> "2. Run the action contained in the OnStartUp attribute."
>
>In the description of the "OnStartUp" attribute (9.1.2) it is written:
>
> "Set of elementary actions to run at the end of the Activation
>behaviour
> for the Group."
>
>I find this quite confusing because the execution of the elementary actions
>of the "OnStartUp" attribute are _not_ the last item in Activation behaviour.
>For example, the activation of all the InitiallyActive objects of a group
>comes later. So, if you want to apply actions to active objects in the group
>you can not use the "OnStartUp" action. To do this someone can use a Link
>object which fires on the "IsRunning" event of the scene.
>
>Therefore, I suggest to change the describtion of the "OnStartUp" attribute
>to:
>
> "Set of elementary actions to run during the Activation behaviour
> for the Group."

Dear Andreas,

It's a quite old problem IMHO.
I noticed it about one year ago and reported the contradiction to Tom
Schwengler but it was unfortunately just too late for the published version.
Then I think he has mentioned this problem here on this list and have also
put an explanation in the technical FAQ on his site.

I think it could be well if a similar site could be maintained about MHEG-5
FAQs and standard problems that should be corrected. Any volunteer to
maintain it ?

I think the main problem is that scene variables are not active when the
OnStartup is executed. Moreover, shared application variables are neither
active when the first scene onStartup is executed. This doesn't allow us to
use these variables in the Onstartup action.

The conclusion of all this is that the onStartup should only be used to
make things on available ingredients (for instance setPosition or
setBoxSize of an application visible that is available) and before it is
displayed.

Then if you need to do things at the end of the activation, just use an
IsRunning link targeted to the scene object that will be executed
synchronously.

BTW, I agree with your proposal of modification.

__________________________________________________________________
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