我们使用了 document 对象上的 onkeydown 事件,在这里找到被访问的元素。记住,document
对象是应用的主窗口。
<audio id="B" src="sounds/B.mp3"
preload="auto"></audio>
<audio id="C" src="sounds/C.mp3"
preload="auto"></audio>
<audio id="D" src="sounds/D.mp3"
preload="auto"></audio>
<audio id="E" src="sounds/E.mp3"
preload="auto"></audio>
<audio id="F" src="sounds/F.mp3"
preload="auto"></audio>
<audio id="G" src="sounds/G.mp3"
preload="auto"></audio>
<audio id="H" src="sounds/H.mp3"
preload="auto"></audio>
<audio id="I" src="sounds/I.mp3"
preload="auto"></audio>
<audio id="J" src="sounds/J.mp3"
preload="auto"></audio>
<audio id="K" src="sounds/K.mp3"
preload="auto"></audio>
<audio id="L" src="sounds/L.mp3"
preload="auto"></audio>
<audio id="M" src="sounds/M.mp3"
preload="auto"></audio>
<audio id="N" src="sounds/N.mp3"
preload="auto"></audio>
<audio id="O" src="sounds/O.mp3"
preload="auto"></audio>
<audio id="P" src="sounds/P.mp3"
preload="auto"></audio>
<audio id="Q" src="sounds/Q.mp3"
preload="auto"></audio>
<audio id="R" src="sounds/R.mp3"
preload="auto"></audio>
<audio id="S" src="sounds/S.mp3"
preload="auto"></audio>
<audio id="T" src="sounds/T.mp3"
preload="auto"></audio>
<audio id="U" src="sounds/U.mp3"
preload="auto"></audio>
<audio id="V" src="sounds/V.mp3"
preload="auto"></audio>
<audio id="W" src="sounds/W.mp3"
preload="auto"></audio>
<audio id="X" src="sounds/X.mp3"
preload="auto"></audio>
<audio id="Y" src="sounds/Y.mp3"
preload="auto"></audio>
<audio id="Z" src="sounds/Z.mp3"
preload="auto"></audio>
<audio id="0" src="sounds/0.mp3"
preload="auto"></audio>
<audio id="1" src="sounds/1.mp3"
preload="auto"></audio>
<audio id="2" src="sounds/2.mp3"
preload="auto"></audio>
<audio id="3" src="sounds/3.mp3"
preload="auto"></audio>
<audio id="4" src="sounds/4.mp3"
preload="auto"></audio>
<audio id="5" src="sounds/5.mp3"
preload="auto"></audio>
<audio id="6" src="sounds/6.mp3"
preload="auto"></audio>
<audio id="7" src="sounds/7.mp3"
preload="auto"></audio>
<audio id="8" src="sounds/8.mp3"
preload="auto"></audio>
<audio id="9" src="sounds/9.mp3"
preload="auto"></audio>
此外,这个应用没有设计炫丽的色彩,也没有使用漂亮的图片。
充分发挥你的想像,找出改进应用设计的方法。
代码也不完美,我们有很多相同的代码需要优化以减少代码行数,至少看起来不那么难受。
重复代码真不是好做法!
测试!就是测试!
好的软件需要通过测试。
我建议你先按键看看,会发生什么事。
最好的情况是你会听到每个键对应的声音。但如果你快速的按下多个键的时候会发生什么呢?如果按下了非预期的键,比如
Home 和 NumLock,又会发生什么呢?
如果你最小化程序再尝试着按钮会怎样?能听到声音吗?如果没有选择应用程序窗口,按下键盘时,还会听到声音吗?
答案是否定的。
Electron 的架构决定了其行为。它允许你可以像 C# 语言那样使用所有按键,但你不能注册特殊的按键。这已经超出了
Electron 应用的使用范围。
一行行的执行代码,并深度中断它,看看会发生什么,Electron 会抛出什么样的错误。这一练习能帮助你更好地进行调试。如果你知道应用的缺陷,那么你就知道该如何去修复,让应用变得更好。
我故意在 functions.js 文件中使用了一个废弃的 JavaScript 事件,你能发现吗?
如果你找到了,我希望你能在不改变应用程序功能的情况下替换它。
使用废弃的代码很不好,这可能会导致严重错误,你甚至可能意识不到这些错误的存在。关注语言的最新文件,了解可能发生的变化,始终了解最新状态。