TransformGestureEventとStartDragおよびStopDragイベントを使用していますが、いくつか問題があります。ActionScript 3ズームとスクロールの問題
私は説明するために最善を尽くします。ズームインすると、ズーム中に画像がズームインして中央に表示されます。私がズームインした後、私は画像の上にドラッグし始めます。トップに達するとスクロールが増えます(これまでのようにすべてが正常に機能しています)が、画像をズームアウトするとy軸はもはや上に、私のイメージがあるはずの空白の空白があります。ここで
は私のコードです:私が起こることを期待しています何
mapMC.addEventListener(TransformGestureEvent.GESTURE_ZOOM, zoom);
mapMC.addEventListener(MouseEvent.MOUSE_DOWN, dragStart);
mapMC.addEventListener(MouseEvent.MOUSE_UP, dragEnd);
//Zooming Method
function zoom (event:TransformGestureEvent):void{
var locX:Number=event.localX;
var locY:Number=event.localY;
var stX:Number=event.stageX;
var stY:Number=event.stageY;
var prevScaleX:Number=mapMC.scaleX;
var prevScaleY:Number=mapMC.scaleY;
var mat:Matrix;
var externalPoint=new Point(stX,stY);
var internalPoint=new Point(locX,locY);
mapMC.scaleX *= event.scaleX;
mapMC.scaleY *= event.scaleY;
if(mapMC.scaleX > 6){
mapMC.scaleX=prevScaleX;
mapMC.scaleY=prevScaleY;
}
if(mapMC.scaleY > 6){
mapMC.scaleX=prevScaleX;
mapMC.scaleY=prevScaleY;
}
if(mapMC.scaleX < 1){
mapMC.scaleX=1;
mapMC.scaleY=1;
}
if(mapMC.scaleY < 1){
mapMC.scaleX=1;
mapMC.scaleY=1;
}
mat=mapMC.transform.matrix.clone();
MatrixTransformer.matchInternalPointWithExternal(mat,internalPoint,externalPoint);
mapMC.transform.matrix=mat;
}
//Dragging Start Method
function dragStart(e:MouseEvent):void
{
mapMC.startDrag(false, new Rectangle(0,0,-mapMC.width + stage.stageWidth, -mapMC.height + stage.stageHeight));
}
//Dragging Stop Method
function dragEnd(e:MouseEvent):void
{
mapMC.stopDrag();
}
は、中央にズームイン私のstartDragに矩形内をスクロールすることができ、画像の上端ながら中央にズームアウトすることですステージの上部に留まり、画像の左側はステージの左側にとどまります。
私はそれが動作しますが、私は中央にズームインカント、私のズーム方式では次の2行のコードを追加しようとしている:ここで
mapMC.y = 0;
mapMC.x = 0;
は、私が何を意味するかを示しますサンプルプロジェクトへのリンクあり
https://drive.google.com/open?id=0B-p_9V3gzZZTcXpQZzI0RU9ZY0k
マップで比率を維持したい、またはx軸をy軸から独立して拡大縮小できるかどうかを確認しますか? –