【问题标题】:AS 3 simple easeAS 3 简单易用
【发布时间】:2013-01-10 15:50:24
【问题描述】:

我怎样才能移动一个物体并在它移动时能够亲眼看到它?不只是消失并出现在不同的位置,就像使用以下代码一样。

buttonL2_btn.addEventListener(MouseEvent.CLICK, left);

函数左(事件:事件):无效{

      box_mc.x =241.5;
}

这会将 myObject 移动到指定的任何位置,但我希望在移动时能够看到它。

【问题讨论】:

    标签: actionscript-3 animation tween


    【解决方案1】:

    在您的示例中,您只是在按下某个按钮时设置它的 X 位置,当您需要将 X 更改为 EnterFrame 事件时,如下所示:

    this.addEventListener(Event.ENTER_FRAME, move);
    
    function move(event:Event):void{
          box_mc.x -= 5
    }
    

    你的 box_mc 应该随着你的帧率向左移动 5 个像素。


    您可以轻松地使用缓动库。我强烈推荐TweenMax

    【讨论】:

    • TweenNano 在这里也能正常工作,Greensock 很棒
    • 我说“TweenMax”是因为库集通常被称为,包括Lite、Nano等。
    • 我一直都叫它Greensock——但我并不想特别,只是指出,既然他有一个非常简单的要求,那Nano可能会比Max更容易,拿起更小的文件大小等。抱歉。
    【解决方案2】:

    好吧,我有点厌烦人们不断建议一些补间引擎。当然他们很摇滚,但这无助于 OP 了解他在做什么。

    Kircho 使用非常简单的补间移动对象我建议在 onEnterFrame 事件中使用以下代码让您的对象移动:

    addEventListener(Event.ENTER_FRAME, onEnterFrame);
    var xGoal:Number = 100;     //::  The target X destination for your object
    var yGoal:Number = 100;     //::  The target Y destination for your object
    var smothness:Number = 10;  //::  Smoothness factor for movement.  The lower the  value the faster the movement.
    
    function onEnterFrame(e:Event):void
    {
          box_mc.x += (xGoal - box_mc.x) / smothness;
          box_mc.y += (yGoal - box_mc.y) / smothness;
    }
    

    将以设定的平滑度将您的盒子对象移动/缓和到所需的位置。

    【讨论】:

      【解决方案3】:

      您可以安装任何 437 个可用的补间引擎
      或者你可以添加几行代码

      设置一个保存目标值的变量

      var dest:Number = 241.5; // this is what gets updated on mouse click
      

      box 的 enterframe 事件:

      function onBoxEnterFrame(e:MouseEvent):void{
        if (dest != box_mc.x){
          var easeNum:Number = 0.4 // between 0 and 1, the higher the number, the slower the transition
          box_mc.x = box_mc.x * easeNum + dest * (1-easeNum);
        }
      }
      

      您可以添加更多行以在位置接近时捕捉位置(差异小于 0.1),或者使用更线性的变化来逐步调整,例如 box_mc.x += 5;,直到它与目标编号匹配

      【讨论】:

        猜你喜欢
        • 2014-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-22
        • 2021-09-14
        • 2012-01-23
        • 2018-07-23
        • 1970-01-01
        相关资源
        最近更新 更多