gpt4 book ai didi

javascript - 协助将 JS 翻译为 CLJS

转载 作者:行者123 更新时间:2023-11-28 01:47:43 26 4
gpt4 key购买 nike

我在 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。 :)

基本上是一个thing.function.value系统或类似的东西,特别是翻译document.querySelector('[name="bpm"]').value到 CLJS。

变量有一个 variable.value 系统,我如何使用 CLJS 来实现这一点?

为我指明正确的方向就足够了,非常感谢。 :)

最佳答案

我已将您的 js 应用程序转换为 cljs 并创建了一个存储库:https://github.com/edbond/cljs-metronome如果它不适合您,请告诉我。

关于javascript - 协助将 JS 翻译为 CLJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20083286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com