动作脚本 3 - 缩放对象以匹配视野



我在flash(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)

但这也不完全正确。一切都变得太大或太小。

有什么想法吗?

你可能想多了。

//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;

之后您可能唯一要做的就是重新定位,如果它们没有在其中心点上注册。

相关内容

  • 没有找到相关文章

最新更新