【问题标题】:Scaling from the center in flash在 Flash 中从中心缩放
【发布时间】:2011-12-20 11:49:11
【问题描述】:

我正在使用 Flash (AS3) 并且有一个动态影片剪辑,我想使用滑动条放大或缩小它。使用 scaleX 和 scaleY 函数,我可以很好地做到这一点。

唯一的问题是这些从文档的左侧缩放,我希望它从中心缩放

感谢任何帮助。

【问题讨论】:

    标签: flash actionscript-3 scaling


    【解决方案1】:
    function scaleFromCenter(dis:*, sX:Number, sY:Number):void
    {
        var prevW:Number = dis.width;
        var prevH:Number = dis.height;
        dis.scaleX = sX;
        dis.scaleY = sY;
        dis.x += (prevW - dis.width) / 2;
        dis.y += (prevH - dis.height) / 2;
    }
    
    scaleFromCenter(yourMovieClip, 0.3, 0.3);
    

    ..

    或者看看 Greensocks TweenMax/AutoFitArea

    http://www.greensock.com/autofitarea/

    非常强大且易于使用。

    【讨论】:

      【解决方案2】:

      为了从对象的中心缩放/旋转,您需要执行以下操作

      1. 将对象转换为 0,0。
      2. 缩放/旋转
      3. 将其翻译回原来的 x,y。

      这是一段代码。

      private function scaleInPosition(dis:Sprite,sX:Number,sY:Number):void
      {
          var posX:Number = dis.x;
          var posY:Number = dis.y;
          dis.x =dis.y = 0;
          dis.scaleX = sX;
          dis.scaleY = sY;
          dis.x = posX;
          dis.y = posY;
      }
      

      【讨论】:

      • 这个比例从左上角开始围绕原始坐标。
      【解决方案3】:

      只需创建要缩放的对象,中心的 0,0 注册十字准线即可。

      【讨论】:

      • 如果我理解正确,他的影片剪辑是动态创建的。因此,注册点位于左上角的 0,0。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 2010-11-16
      • 2010-10-16
      • 2012-07-16
      相关资源
      最近更新 更多