我之前检查了一些问题,例如this和another,但没有一个问题可以解决我遇到的问题。我有一个缩放功能:
protected function onZoom(e:TransformGestureEvent, img:Image):void
{
DynamicRegistration.scale(img, new Point(e.localX, e.localY), img.scaleX*e.scaleX, img.scaleY*e.scaleX);
}
和缩放工作(以及好!),但我想将缩放限制为2.5x和.8x。所以我的第一个想法是尝试这个:
protected function onZoom(e:TransformGestureEvent, img:Image):void
{
while(img.scaleX <= 2.5 && img.scaleX >= .8)
DynamicRegistration.scale(img, new Point(e.localX, e.localY), img.scaleX*e.scaleX, img.scaleY*e.scaleX);
}
但是这会缩放到最大限制而没有任何像捏合变焦之类的交互,我认为比例刚好超过2.5倍并且它不会响应缩放。
我的下一次尝试是:
protected function onZoom(e:TransformGestureEvent, img:Image):void
{
while(img.scaleX <= 2.5 && img.scaleX >= .8)
{
DynamicRegistration.scale(img, new Point(e.localX, e.localY), img.scaleX*e.scaleX, img.scaleY*e.scaleX);
if(img.scaleX > 2.5)
{
img.scaleX = 2.5;
img.scaleY = 2.5;
}
else if(img.scaleX < .8)
{
img.scaleX = .8;
img.scaleY = .8;
}
}
}
尝试将大小重置为超出范围内的限制,但这只是不成功,但图像什么都不做,应用程序锁定并导致力关闭。
有谁知道如何实现这一目标?我喜欢这种缩放方法,因为它简单,但它可以在缩放时实例化边界时使用吗?