我在这里看了一些答案,没有人帮忙。 我是javascript的新手,我正在尝试使用HTML文档中脚本标记内的一些数据创建一个新对象,并且该对象在另一个文件中定义。
HTML文件中的相关信息:(全部在<head>
标记中)
<script type="text/javascript" src="data.js"></script>
<script type="text/javascript" src="paper-full.js"></script>
<script type="text/javascript" src="howler.core.js"></script>
<link rel="stylesheet" type="text/css" href="circles.css">
<script type="text/paperscript" canvas="myCanvas">
var keyData = new Data();
function onKeyDown(event) {
var colour = "orange";
if(keyData.data[event.key]){
keyData.data[event.key].sound.play();
colour = keyData.data[event.key].colour;
}
}
</script>
我的data.js文件:
function Data(){
var data = {
q: {
sound: new Howl({
src: ['sounds/bubbles.mp3'],
volume: 0.3
}),
colour: '#1abc9c'
},
w: {
sound: new Howl({
src: ['sounds/clay.mp3'],
volume: 0.3
}),
colour: '#2ecc71'
}, ... LOTS MORE DATA
...
}
每当我按下键盘上的某个键时,我在Chrome开发者控制台中出现错误:
Uncaught TypeError: Cannot read property 'e' of undefined
at Tool.onKeyDown [as _onKeyDown] (<anonymous>:11:38)
at Tool.emit (paper-full.js:662)
at emit (paper-full.js:12866)
at CanvasView._handleKeyEvent (paper-full.js:12874)
at handleKey (paper-full.js:13120)
at HTMLDocument.keypress (paper-full.js:13148)
这对我来说很奇怪,因为它似乎在说'e'是应该成为钥匙的属性。
我是JavaScript的新手,所以我对将代码拆分成多个文件并不太自信。
奖励:如果有人可以向我解释如何将我的text / paperscript脚本移动到一个单独的文件中,而不是破坏那些非常棒的内容。
感谢。