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.5xをわずかに上回り、ズームに反応しません。
私の次の試みは:
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;
}
}
}
制限を超えた場合にサイズを制限内にリセットしようとしましたが、これはほとんど失敗しましたが、画像は何もせず、アプリがロックされて強制終了します.
これをどのように達成できるか知っている人はいますか?このズーム方法は単純なので気に入っていますが、スケーリングの境界をインスタンス化するときに使用できますか?