Визуализатор аудио — ActionScript в JavaScript

Однажды я нашел такой очень классный Аудио Визуализатор в ShockWave. И я хотел бы переписать его на простой JavaScript с использованием JQuery или без него. Некоторые части кода я знаю, как изменить, но может ли кто-нибудь помочь мне с этим фрагментом? Тогда я буду знать, как поступить с другими отрывками.

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;
      }
   }
}

person Kondzio    schedule 04.01.2021    source источник


Ответы (2)


Вы вообще не можете конвертировать 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

person blanknamefornow    schedule 04.01.2021

В Javascript нет функции public или static. Нет необходимости объявлять типы данных (например: :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 );
}
person VC.One    schedule 08.01.2021