[英]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.