无法从不同的文件

时间:2017-08-10 02:11:02

标签: javascript html object paperjs

我在这里看了一些答案,没有人帮忙。 我是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脚本移动到一个单独的文件中,而不是破坏那些非常棒的内容。

感谢。

0 个答案:

没有答案