1

フラッシュ (as3) で独自のパノラマ ビューアー アプリケーションの上にいくつかのクリック可能なホットスポットをオーバーレイしています。どの式を使用すればよいかわかりません。

視野の最大と最小をそれぞれ 90 と 25 に設定しました。アイコンのスケールを計算する方法について、いくつかの提案がありました。

パノラマソフトのメーカーより:

Scale => 1/tan(FoV)

これは私にはうまくいかないようです。と:

scalar += (ZOOM_SCALE_UPPER - ZOOM_SCALE_LOWER) * ( ZOOM_LIMIT_OUT - tempFOV   )/( ZOOM_LIMIT_OUT-ZOOM_LIMIT_IN) ;

hotspot.scaleX = hotspot.scaleY = scalar;

近づきますが、ある時点で、パノラマが拡大し続けていても、ホットスポットの拡大が止まります。次のようなことができると思いました:

diffFOV = previousFOV - currentFOV.
hotspot.scale = currentScale*(1-diffFov)

しかし、それも正しくありません。すべてが大きすぎたり小さすぎたりします。

何か案は?

4

1 に答える 1

1

考え過ぎかもしれません。

//assume we change the scale
var NEW_SCALE:Number = currentScale*(1-(previousFOV-currentFOV));

//1. change the scale of the parent containing both the view and the hotspots
viewSprite.scale = NEW_SCALE;
//this way the hotspot and the panorama will scale together

//2. if they are not in the same parent... then set them both to the same view
hotspot.scale = panorama.scale;

それらが中心点に登録されていない場合、後で行う必要があるのは再配置だけです。

于 2013-01-24T21:06:08.523 に答える