Android DynamicRegistration.scale缩放限制?
我已经检查了一些以前的问题,如和,但没有解决我的问题。我有一个缩放功能:Android DynamicRegistration.scale缩放限制?,android,actionscript-3,apache-flex,flex4.5,pinchzoom,Android,Actionscript 3,Apache Flex,Flex4.5,Pinchzoom,我已经检查了一些以前的问题,如和,但没有解决我的问题。我有一个缩放功能: 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);
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);
}
缩放时受保护的函数(e:TransformGestureEvent,img:Image):无效
{
而(img.scaleX=.8)
DynamicRegistration.scale(img,新点(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;
}
}
}
缩放时受保护的函数(e:TransformGestureEvent,img:Image):无效
{
而(img.scaleX=.8)
{
DynamicRegistration.scale(img,新点(e.localX,e.localY),img.scaleX*e.scaleX,img.scaleY*e.scaleX);
如果(img.scaleX>2.5)
{
img.scaleX=2.5;
img.scaleY=2.5;
}
否则如果(img.scaleX<.8)
{
img.scaleX=.8;
img.scaleY=.8;
}
}
}
如果超出限制,尝试将大小重置为限制范围内,但这并不是唯一的失败,但图像不起任何作用,应用程序锁定并导致强制关闭
有人知道如何做到这一点吗?我喜欢这种zoom方法,因为它简单,但它可以在实例化缩放边界时使用吗