0

我曾经在 ShockWave 中发现了一个非常酷的音频可视化器。我想用或不使用 JQuery 将它重写为纯 JavaScript。我知道如何更改代码的某些部分,但有人可以帮助我处理这个片段吗?然后我会知道如何处理其他段落。

package fl.motion.easing
{
   public class Quadratic
   {
       
      
      public function Quadratic()
      {
         super();
      }
      
      public static function easeIn(param1:Number, param2:Number, param3:Number, param4:Number) : Number
      {
         return param3 * (param1 = param1 / param4) * param1 + param2;
      }
      
      public static function easeOut(param1:Number, param2:Number, param3:Number, param4:Number) : Number
      {
         return -param3 * (param1 = param1 / param4) * (param1 - 2) + param2;
      }
      
      public static function easeInOut(param1:Number, param2:Number, param3:Number, param4:Number) : Number
      {
         if((param1 = param1 / (param4 / 2)) < 1)
         {
            return param3 / 2 * param1 * param1 + param2;
         }
         return -param3 / 2 * (--param1 * (param1 - 2) - 1) + param2;
      }
   }
}
4

2 回答 2

1

在这种情况下,您根本无法将 ActionScript 转换为 JavaScript,两种不同的语言都可以传递伪代码。在 JavaScript 的情况下,你可能想看看这条路线,看看你能做什么。参考自

https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode/onaudioprocess

var audioCtx = new AudioContext();
var scriptNode = audioCtx.createScriptProcessor(4096, 1, 1);
scriptNode.onaudioprocess = function() { ...};

不幸的是,这只是答案的一部分。实际上,您会发现您需要创建与您发布的事件类似的事件,这些事件将在某些事件发生时运行(取决于您的设计方式)。

Javascript 是其中的一部分,但不是全部,看看我发现的一个很酷的代码笔! https://codepen.io/Wpitallo/pen/oNXjPBr

于 2021-01-04T16:26:00.073 回答
0

Javascript中没有publicorstatic函数。无需声明数据类型(例如:) :Number

如果这是我的问题,我会在需要时直接调用函数。

在 AS3 中,我假设它是这样使用的:

var myQuad :Quadratic = new Quadratic; //import class

//# then later on, using class...
some_Result_Num = myQuad.easeInOut( a, b, c, d);

在 JS 中你可以调用函数(没有类或导入)

some_Result_Num = Quadratic_easeInOut( a, b, c, d);

Quadratic_easeInOut您的 JS 代码中看起来像这样:

function Quadratic_easeInOut ( param1, param2, param3, param4)
{
    if( ( param1 / (param4 / 2) ) < 1)
    { return ( param3 / 2 * param1 * param1 + param2 ); }
    
    return ( -param3 / 2 * (--param1 * (param1 - 2) - 1) + param2 );
}
于 2021-01-08T17:15:09.150 回答