簡體   English   中英

音頻展示台 - ActionScript 到 JavaScript

[英]Audio Visualizer - ActionScript to 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;
      }
   }
}

在這種情況下,您根本無法將 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

Javascript 中沒有publicstatic function。 無需聲明數據類型(例如: :Number )。

如果這是我的問題,我會在需要時直接調用函數。

在 AS3 中,我假設它是這樣使用的:

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

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

在 JS 中,您可以調用 function(沒有 class 或導入)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM