Du bist nicht angemeldet.

1

Mittwoch, 20. August 2014, 20:09

Introimage bei Touraufruf, nicht szenenabhängig

Ich erstelle meine Panoramen ausschließlich über das Droplet "Make Vtour Multires" und möchte gerne danach (oder irgendwann durch Anpassung der Default-Dateien) Anpassungen vornehmen. Zuerst möchte ich ein Introimage einblenden lassen, aber nur einmalig bei Aufruf der Vtour. Ich habe das Beispiel aus dem Examples-Ordner genommen, bekomme dies aber nur zum Laufen wenn ich es in der ersten Szene der Vtour plaziere. Dann sieht der User es beim Start, aber bekommt es jedesmal wieder zu sehen wenn er diese Szene erneut aufruft. Gibt es einen Weg den INtroimageCode zu plazieren sodaß er einmalig beim Start abläuft und nicht einer speziellen Szene zugeordnet ist?

Evtl lässt sich das ja durch den onstart="startup(); mit aufrufen?

Hier mein bisheriger Code:

$this->cacheCode('[php]','<krpano version="1.17.4" title="Virtual Tour" onstart="startup();">

<include url="skin/vtourskin.xml" />

<!-- set skin settings: bingmaps? gyro? thumbnail controlling? tooltips? -->
<skin_settings bingmaps="true"
bingmaps_key="AmyJPWSRUTBDglPChP0xv7DnX-8yf2rxR1ivtJu6Ok9IaX8aydpuHs36moNhyczc"
bingmaps_zoombuttons="false"
gyro="true"
thumbs_width="120" thumbs_height="80" thumbs_padding="10" thumbs_crop="0|40|240|160"
thumbs_opened="false"
thumbs_text="false"
thumbs_dragging="true"
thumbs_onhoverscrolling="false"
thumbs_scrollbuttons="false"
thumbs_scrollindicator="false"
thumbs_loop="false"
tooltips_thumbs="false"
tooltips_hotspots="false"
tooltips_mapspots="false"
controlbar_offset="20"
/>

<!-- set optional skin logo url -->
<layer name="skin_logo" url="" scale="0.25" opened_onclick="openurl('...',_blank);" />


<action name="startup">
if(startscene === null, copy(startscene,scene[0].name));
loadscene(get(startscene), null, MERGE);
</action>


<scene name="scene_scene1" title="scene1" onstart="" thumburl="panos/scene1.tiles/thumb.jpg" lat="" lng="" heading="">

<view hlookat="0" vlookat="0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />

<!-- Das Introimage beginnt hier-->
<events name="panoevents"
onloadcomplete="delayedcall(introimage, 4.0, if(layer[introimage], hideintroimage() ); ); set(events[panoevents].onloadcomplete,null);"
onremovepano="stopdelayedcall(introimage);"
/>
<layer name="introimage"
url="introimage.png"
align="center"
onloaded="set(alpha,0); tween(alpha,1.0);"
onclick="hideintroimage();"
/>
<action name="hideintroimage">
if(layer[introimage].enabled,
set(layer[introimage].enabled,false);
tween(layer[introimage].alpha, 0.0, 0.5, default, removelayer(introimage));
);
</action>
<!-- Das Introimage endet hier -->

<preview url="panos/scene1.tiles/preview.jpg" />

<image type="CUBE" multires="true" tilesize="512" progressive="false">
<level tiledimagewidth="256" tiledimageheight="256">
<cube url="panos/scene1.tiles/%s/l1/%v/l1_%s_%v_%h.jpg" />
</level>
<mobile>
<cube url="panos/scene1.tiles/mobile_%s.jpg" />
</mobile>
</image>

<!-- place your scene hotspots here -->

</scene>

<scene name="scene_scene2" title="scene2" onstart="" thumburl="panos/scene2.tiles/thumb.jpg" lat="" lng="" heading="">

<view hlookat="0" vlookat="0" fovtype="MFOV" fov="120" maxpixelzoom="2.0" fovmin="70" fovmax="140" limitview="auto" />

<preview url="panos/scene2.tiles/preview.jpg" />

<image type="CUBE" multires="true" tilesize="512" progressive="false">
<level tiledimagewidth="256" tiledimageheight="256">
<cube url="panos/scene2.tiles/%s/l1/%v/l1_%s_%v_%h.jpg" />
</level>
<mobile>
<cube url="panos/scene2.tiles/mobile_%s.jpg" />
</mobile>
</image>

<!-- place your scene hotspots here -->

</scene>

</krpano>
')

2

Mittwoch, 20. August 2014, 21:46

Mit visible true/false ließe sich das realisieren

$this->cacheCode('[php]','
<krpano version="1.17.4" onstart="startup();">

<layername="willkommen"
url="images/introimage.png"
align="center"
onloaded="set(alpha,0); tween(alpha,1.0);"
onclick="willkommen();"
keep="true" align="center" edge="center" x="0" y="0" url="images/introimage.png" visible="false"
onclick="set(layer[willkommen].visible,false);" />

<action name="startup">
<!-- load the first scene -->
set(plugin[willkommen].visible,true); if(startscene === null, copy(startscene,scene[0].name));
loadscene(get(startscene), null, MERGE);
</action>

</krpano>')

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Horsty« (20. August 2014, 21:51)


3

Mittwoch, 20. August 2014, 21:50

Hallo Mark,

startup ist schon mal eine gute Idee.

Ohne den ganzen Event-Kram wäre eine Simpel-Lösung (ohne Ein- und Ausblenden, das Intro verschwindet auf Klick) :
1. Am Ende von Startup$this->cacheCode('[php]','showintroimage();')

2. Statt der bisherigen Lösung:
$this->cacheCode('[php]','<layer name="introimage"
url="introimage.png"
align="center"
keep="true"
ondown="hideintroimage"
/>

<action name="showintroimage">
set(layer[introimage].visible,true);
</action>

<action name="hideintroimage">
set(layer[introimage].visible,false);
</action>')

Kann man natürlich noch erheblich weiter entwickeln.

Gruß
Wolf

4

Donnerstag, 21. August 2014, 07:50

Horsty & Wolf: Vielen Dank! Die einfache Klick-Variante gefällt mir am besten :-) Ich habs gerade probiert und es klappt auf Anhieb, - eine Erfahrung die ich mit KrPano eher selten mache :-)

VG, Mark

Ähnliche Themen