You are not logged in.

Dear visitor, welcome to krpano.com Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Tuesday, March 23rd 2010, 5:41pm

Mehrere "action" gemeinsam ablaufen lassen?

Hallo,

ich habe mir vorgestellt, bei einem bestimmten Pano mit einem Schwenk/Zoom zu beginnen. Gleichzeitig soll ein Textfeld eingeblendet und nach einer bestimmten Zeit ausgeblendet werden.
Bis zum Einblenden des Textfeldes funktioniert alles wunderbar, nur an der Ausblendung scheitere ich immer. Ein Teil meiner XML sieht folgendermaßen aus:

<events onloadcomplete="delayedcall(1, hidetextfeld() ); set(events.onloadcomplete,null);" />

<plugin name="textfeld"
url="textfeld.png"
align="Bottomleft"
onloaded="set(alpha,0); tween(alpha,1.0);" />

<action name="hidetextfeld">
if(plugin[textfeld].enabled,
set(plugin[textfeld].enabled,false);
tween(plugin[textfeld].alpha, 0.0, 0.5, default, removeplugin(textfeld)););

</action>


<events onloadcomplete="delayedcall(1.0, normalview());" />

<action name="normalview">
tween(view.fov, 79, 4, easeInOutQuad );
tween(view.vlookat, -7, 18, linear,WAIT );
tween(view.hlookat, 360, 36, easeInOutQuad );

</action>




Wenn ich die zwei "action" in der Reihenfolge austausche, wird das Textfeld ausgeblendet, aber der Schwenk/Zoom läuft nicht mehr ab.

Hat mir jemand einen Rat?

Gruß Michael

This post has been edited 1 times, last edit by "m.bond" (Mar 23rd 2010, 5:59pm)


iceman_fx

Professional

Posts: 602

Location: Sachsen

Occupation: Webdesigner- und entwickler sowie Fotodesigner

  • Send private message

2

Wednesday, March 24th 2010, 8:49am

Grundlegend solltest Du nicht 2x das gleiche event-Attribut setzen (onloadcomplete).
Damit überschreibst Du immer eines.

Setze den 2. Aufruf einfach in einen event-Aufruf mit rein und gib mal bescheid, ob es dann klappt oder nicht.

3

Wednesday, March 24th 2010, 9:30pm

Hallo iceman,
danke für deinen Tip. Im gewissen Sinne funktioniert es jetzt. Ein Teil meiner XML sieht jetzt folgendermaßen aus:


<events onloadcomplete="delayedcall(1.0, normalview());delayedcall(1, hidetextfeld() ); set(events.onloadcomplete,null);" />

<action name="normalview">
tween(view.fov, 79, 4, easeInOutQuad );
tween(view.vlookat, -7, 18, linear,WAIT );
tween(view.hlookat, 360, 36, easeInOutQuad );

</action>

<plugin name="textfeld"
url="textfeld.png"
align="Bottomleft"
onloaded="set(alpha,0); tween(alpha,1.0);" />

<action name="hidetextfeld">
if(plugin[textfeld].enabled,
set(plugin[textfeld].enabled,false);
tween(plugin[textfeld].alpha, 0.0, 0.5, default, removeplugin(textfeld)););

</action>


Die Ausblendung des Textfeldes erfolgt jetzt direkt nach "tween(view.vlookat, -7, 18, linear,WAIT );". War so nicht geplant und ich verstehe auch nicht warum,
aber mit dieser Lösung kann ich leben. Vielleicht kannst du mir noch sagen, ob die event-Zeile so in Ordnung ist. Danke!

Gruß Michael

iceman_fx

Professional

Posts: 602

Location: Sachsen

Occupation: Webdesigner- und entwickler sowie Fotodesigner

  • Send private message

4

Thursday, March 25th 2010, 8:10am

Du hast ja ein WAIT in das 2.Tween eingebaut.
Damit wird solange gewartet, bis der Tween fertig ist.

Deshalb ist in dieser Zeit auch schon das Textfeld verschwunden, da dies als separater Task abläuft.

Grundlegend ist Deine event-Zeile korrekt.
Wozu Du allerdings das set(events....) in Deinem Fall brauchst, wird mir aus diesem Stück Code nicht ersichtlich.

5

Thursday, March 25th 2010, 9:10am

Hallo iceman,
danke für deine Erklärungen. Sie helfen mir schon ein ganzes Stück weiter.

Das WAIT hatte ich eigentlich eingebaut, um den horizontalen Schwenk erst nach dem vertikalen ablaufen zu lassen. Daß dadurch das <action name="hidetextfeld"> auch entsprechend wartet, hatte ich nicht berücksichtigt.

Warum ich das set(events....) noch enthalten ist? Ich kann es dir nicht sagen. Ich habe die komplette Zeile aus einem Beispiel entnommen und, ehrlich gesagt, nicht hinterfragt, nachdem alles wie gewünscht ablief (zumindest dieses Teil). Es liegt einfach daran, daß ich noch frisch im Geschäft bin und momentan in vielen Fällen einfach vom Versuch und Irrtum lebe (.......... zumindest bis zu dem Punk, an dem ich nicht mehr weiterkomme). Das Verstehen der Zusammenhänge erfolgt erst so allmählich und die bestehende Dokumentation hift mir nur bedingt.
Auf jeden Fall habe ich das set(events....) herausgenommen und wie du schon vermutet hattest, funktioniert alles auch ohne diesen Zusatz!

Dankeschön noch einmal für deine Hilfe.

Gruß Michael

iceman_fx

Professional

Posts: 602

Location: Sachsen

Occupation: Webdesigner- und entwickler sowie Fotodesigner

  • Send private message

6

Thursday, March 25th 2010, 1:17pm

Das WAIT hatte ich eigentlich eingebaut, um den horizontalen Schwenk erst nach dem vertikalen ablaufen zu lassen. Daß dadurch das <action name="hidetextfeld"> auch entsprechend wartet, hatte ich nicht berücksichtigt.

Das löst Du besser über das Tween, da kannst Du als Parameter angeben, welche Aktion bei Beendigung des Tweens aufgerufen werden soll.
Dies wäre dann Dein nächster Tween.

7

Friday, March 26th 2010, 7:55am

Danke für deinen Tip. Werde ich einmal ausprobieren.

Gruß Michael