Android Gesture Уменьшить положение Проблема на AS3 - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть скрипт, он отлично работает, когда я использую жест для увеличения и уменьшения масштаба, но иногда, когда я увеличиваю и уменьшаю масштаб в другой позиции жеста, мой объект снова перемещается не по x, y (0,0),Этот скрипт должен иметь возможность прокручивать и увеличивать функцию уменьшения масштаба, всегда перемещаясь в другое место, когда я уменьшаю масштаб в другой точке жеста.Может кто-нибудь помочь мне, пожалуйста.пожалуйста.

Мой проект фотографий введите описание изображения здесь

Это мой сценарий

ccp.addEventListener("mouseDown", mdp);

function mdp(evt:*):void
{
    ccp.startDrag(false, new Rectangle(ccp.x, 72, 0, 36 * -37));
    stage.addEventListener("mouseUp", mup);
}

function mup(evt:*):void
{
    ccp.stopDrag();
    stage.removeEventListener("mouseUp", mup);
}



//__________________________________________________


import flash.events.TransformGestureEvent;
import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;
import fl.motion.MatrixTransformer;

Multitouch.inputMode = MultitouchInputMode.GESTURE;
stage.addEventListener(TransformGestureEvent.GESTURE_ZOOM , onZoom);
function onZoom(event:TransformGestureEvent):void
{
    //trace(e.localX);

	
    var locX:Number=event.localX;
    var locY:Number=event.localY;
    var stX:Number=event.stageX;
    var stY:Number=event.stageY;
	var x.ccp = prevScaleX;
	var y.ccp = prevScaleY;
    var prevScaleX:Number=ccp.scaleX;
    var prevScaleY:Number=ccp.scaleY;
    var mat:Matrix;
    var externalPoint=new Point(stX,stY);
    var internalPoint=new Point(locX,locY);

    ccp.scaleX *= event.scaleX;
    ccp.scaleY *= event.scaleY;

    if(event.scaleX > 1 && ccp.scaleX > 0.5){
    ccp.scaleX=prevScaleX;
    ccp.scaleY=prevScaleY;
    }

    if(event.scaleY > 1 && ccp.scaleY > 0.5){
    ccp.scaleX=prevScaleX;
    ccp.scaleY=prevScaleY;
    }

    if(event.scaleX < 1.1 && ccp.scaleX < 0.2127){
    ccp.scaleX=prevScaleX;
    ccp.scaleY=prevScaleY;
    }

    if(event.scaleY < 1.1 && ccp.scaleY < 0.2127){
    ccp.scaleX=prevScaleX;
    ccp.scaleY=prevScaleY;
	
    }
    mat=ccp.transform.matrix.clone();
    MatrixTransformer.matchInternalPointWithExternal(mat,internalPoint,externalPoint);
    ccp.transform.matrix=mat;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...