首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >协助翻译JS到CLJS

协助翻译JS到CLJS
EN

Stack Overflow用户
提问于 2013-11-19 22:19:49
回答 1查看 262关注 0票数 1

我在JS中开发了一个简单的节拍器,作为一种JS练习,也不再需要。它可以在这里找到:https://github.com/Greduan/js-metronome/blob/master/js/main.js

我在一定程度上把它翻译成CLJS:

代码语言:javascript
复制
(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实现这一点呢?

把我指引到正确的方向已经足够了,我非常感激。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-20 12:40:53

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20083286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档