簡體   English   中英

協助將JS轉換為CLJS

[英]Assistance translating JS to CLJS

我已經在JS中開發了一個簡單的節拍器作為JS練習,並且也沒有必要。 可以在這里找到: https : //github.com/Greduan/js-metronome/blob/master/js/main.js

我已經將其翻譯為CLJS:

(ns mies-2.core
  (:use 'createjs.Sound))

(def assetsPath "assets/")
(def manifest [{:src "Click1.ogg|Click1.mp3" :id 1} {:src "Click2.ogg|Click2.mp3" :id 2}])

(.registerManifest createjs/Sound [manifest assetsPath])

(defn stop []
  ((js/clearInterva(intervalID))
   (.stop createjs/Sound [])
   (.log js/console "Stopped sound(s).")))

(defn playSound [target]
  ;                                           v FIX
  ((def instance (.play createjs/Sound [target.id (.INTERRUPT_NONE createjs/Sound []) 0 0 false 1]))
  ;                                 v FIX
  (or (== instance nil) (== instance.playState (.PLAY_FAILED createjs/Sound)) nil)
  (.log js/console ["Played sound ID:" target.id])))

(defn soundLoop [soundID]
  ;                                                             v FIX
  ((def bpmInput (.querySelector js/document ["[name=\"bpm\"]"] .value))
   (def bpm (/ 60000 bpmInput))
   (.log js/console ["Input:" bpmInput "Delay:" bpm])
   (def intervalID (js/setInterval [fn [] (playSound [soundID]) bpm]))))

我在評論FIX指出了我需要幫助的地方。 :)

基本上是將事物。功能document.querySelector('[name="bpm"]').value或類似的東西thing.function.value ,特別是將document.querySelector('[name="bpm"]').value為CLJS。

而具有variable.value系統的variable.value ,如何使用CLJS實現呢?

為我指出正確的方向是綽綽有余的,非常感謝。 :)

我已經將您的js應用程序轉換為cljs並創建了一個存儲庫: https : //github.com/edbond/cljs-metronome讓我知道它是否對您不起作用。

暫無
暫無

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

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