Vielleicht basiert das nur auf den distorted Hotspots, wenn man aufs Bild klickt, liest der Player die aktuelle view-position aus und passt die rx, ry, rz und scale Attribute des Bildes automatisch so an, dass sie großflächig im Panorama sichtbar sind?
Wär das ein Ansatz? Oder gibts eine andere Möglichkeit?
Hi,
ja, das wäre ein Ansatz, ich bin aber noch am überlegen, wie sich so etwas einfacher realisieren lassen würde,
mit "etwas" XML Code wäre es aber jetzt schon möglich (entsprechend deinem Ansatz

)
z.B.:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<events onviewchange="if(hotspot[spot].fly, centerhotspot() );" />
<action name="centerhotspot">
set(hotspot[spot].ath, get( view.hlookat ) );
set(hotspot[spot].atv, get( view.vlookat ) );
div(hotspot[spot].scale, 2.0, view.r_zoom ) );
</action>
<action name="flyout">
copy(backup_ath,ath);
copy(backup_atv,atv);
copy(backup_scale,scale);
copy(backup_rx,rx);
copy(backup_ry,ry);
copy(backup_rz,rz);
adjusthlookat( get(ath) );
tween(ath, get(view.hlookat) );
tween(atv, get(view.vlookat) );
tween(rx, 0);
tween(ry, 0);
tween(rz, 0);
div(destscale, 2.0, view.r_zoom );
tween(scale, get(destscale), 0.5, default, WAIT );
set(fly,true);
</action>
<action name="flyin">
set(fly,false);
tween(ath, get(backup_ath));
tween(atv, get(backup_atv));
tween(scale, get(backup_scale));
tween(rx, get(backup_rx));
tween(ry, get(backup_ry));
tween(rz, get(backup_rz));
</action>
<hotspot name="spot"
url="image.jpg"
distorted="true"
zoom="true"
ath="21"
atv="20"
scale="0.5"
rx="-75" ry="-18" rz="-29"
fly="false"
onclick="if(fly, flyin(), flyout());"
/>
|
das Problem an dem Beispiel ist nur die Skalierung des Hotspots, damit die unabhängig vom Zoom bleibt, muss diese an den aktuellen Zoom angepasst werden, intern gibt es für den Zoom die "
view.r_zoom" Variable (diese enthält allerdings den Zoomwert des letzten Frames, wodurch sich beim Zoomen die Hotspotgröße kurz ändert),
es wäre natürlich kein Problem den richtigen/aktuellen "zoom" Wert für die Berechnung bereitzustellen, allerdings bin ich eher am überlegen wie sich das Ganze vereinfachen und automatisieren lässt...
Schöne Grüße,
Klaus