ActionScript 3 - MovieClip Scale,当scale小于1时设置为1

时间:2017-07-25 18:00:38

标签: actionscript-3 flash

我有一个图像的MovieClip,我已经应用了一个TransformGestureEvent并且它运行良好,我只是在尝试扩展小于1时遇到问题。我不希望比例小于1所以我提出了一个条件我的TransformGestureEvent所以当有人试图缩小小于1时,比例将重置为1 ...我希望这是有道理的。

以下是给我带来麻烦的代码片段。

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

这是完整的方法:

function zoomFloorplan (event:TransformGestureEvent):void{

    myTimerModel.stop();
    myTimerModel.reset();
    myTimerModel.start();

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

    floorplanMC.scaleX *= event.scaleX;
    floorplanMC.scaleY *= event.scaleY;

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

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

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

    if(event.scaleY < 1.1 && floorplanMC.scaleY < 1){
    floorplanMC.scaleX=prevScaleX;
    floorplanMC.scaleY=prevScaleY;
    }
    mat=floorplanMC.transform.matrix.clone();
    MatrixTransformer.matchInternalPointWithExternal(mat,internalPoint,externalPoint);
    floorplanMC.transform.matrix=mat;
}

我没有得到任何错误,但我期待的是如果我尝试缩小小于1,那么floorplanMC的规模是1并且MovieClip回到它原来的规模。目前它还没有回到原来的状态,规模小于1。

0 个答案:

没有答案