游戏关卡var未定义

时间:2014-06-20 08:54:22

标签: html5 function

我正在制作一个多级别的html5游戏。它们(未正确)定义,因为我收到错误Uncaught TypeError: Cannot read property 'length' of undefined。我认为我的var格式不正确。应该怎么做?

var levels = ([ 
        { factor: 1.2, duration: 100, multiplier: 0.5 },
        { factor: 1.5, duration: 200, multiplier: 0.6 },
        { factor: 1.9, duration: 300, multiplier: 0.7 },
        { factor: 2.3, duration: 450, multiplier: 0.8 },
        { factor: 2.8, duration: 600, multiplier: 1.0 },
        { factor: 3.3, duration: 800, multiplier: 1.1 },
        { factor: 3.9, duration: 1000, multiplier: 1.3 },
        { factor: 4.4, duration: 1500, multiplier: 1.7 },
        { factor: 5.6, duration: 2000, multiplier: 2.0 }
    ]  [
        { factor: 1.2, duration: 100, multiplier: 0.5 },
        { factor: 1.8, duration: 200, multiplier: 0.6 },
        { factor: 2.3, duration: 300, multiplier: 0.7 },
        { factor: 2.5, duration: 450, multiplier: 0.8 },
        { factor: 3.2, duration: 600, multiplier: 1.0 },
        { factor: 3.6, duration: 800, multiplier: 1.1 },
        { factor: 4.0, duration: 1100, multiplier: 1.3 },
        { factor: 4.8, duration: 1700, multiplier: 1.7 },
        { factor: 5.6, duration: 2400, multiplier: 2.0 }
    ]
    );

function generateLevelSelector() {
        var html = '';

        for( var i = 1, len = levels.length; i <= len; i++ ) {
            html += '<li data-level="' + i + '">' + i + '</li>'
        }

        // Find the list element that will hold all levels
        var list = levelSelector.getElementsByTagName( 'ul' )[0];

        list.innerHTML = html;

        var listItems = levelSelector.getElementsByTagName( 'li' );

        for( var i = 0, len = listItems.length; i < len; i++ ) {
            listItems[i].addEventListener( 'click', levelSelectedHandler, false );
        }

        updateLevelSelector();

    }

2 个答案:

答案 0 :(得分:1)

将其包裹在[]中,而不是()

var levels = [[ 
        { factor: 1.2, duration: 100, multiplier: 0.5 },
        { factor: 1.5, duration: 200, multiplier: 0.6 },
        { factor: 1.9, duration: 300, multiplier: 0.7 },
        { factor: 2.3, duration: 450, multiplier: 0.8 },
        { factor: 2.8, duration: 600, multiplier: 1.0 },
        { factor: 3.3, duration: 800, multiplier: 1.1 },
        { factor: 3.9, duration: 1000, multiplier: 1.3 },
        { factor: 4.4, duration: 1500, multiplier: 1.7 },
        { factor: 5.6, duration: 2000, multiplier: 2.0 }
    ],  [
        { factor: 1.2, duration: 100, multiplier: 0.5 },
        { factor: 1.8, duration: 200, multiplier: 0.6 },
        { factor: 2.3, duration: 300, multiplier: 0.7 },
        { factor: 2.5, duration: 450, multiplier: 0.8 },
        { factor: 3.2, duration: 600, multiplier: 1.0 },
        { factor: 3.6, duration: 800, multiplier: 1.1 },
        { factor: 4.0, duration: 1100, multiplier: 1.3 },
        { factor: 4.8, duration: 1700, multiplier: 1.7 },
        { factor: 5.6, duration: 2400, multiplier: 2.0 }
    ]
    ];

答案 1 :(得分:0)

您的阵列创建似乎已损坏。

var levels = [ // <--- round brackes only with new Array, in this case square brackets
[ 
    { factor: 1.2, duration: 100, multiplier: 0.5 },
    { factor: 1.5, duration: 200, multiplier: 0.6 },
    { factor: 1.9, duration: 300, multiplier: 0.7 },
    { factor: 2.3, duration: 450, multiplier: 0.8 },
    { factor: 2.8, duration: 600, multiplier: 1.0 },
    { factor: 3.3, duration: 800, multiplier: 1.1 },
    { factor: 3.9, duration: 1000, multiplier: 1.3 },
    { factor: 4.4, duration: 1500, multiplier: 1.7 },
    { factor: 5.6, duration: 2000, multiplier: 2.0 }
], // <--- MISSED COMMA?
[
    { factor: 1.2, duration: 100, multiplier: 0.5 },
    { factor: 1.8, duration: 200, multiplier: 0.6 },
    { factor: 2.3, duration: 300, multiplier: 0.7 },
    { factor: 2.5, duration: 450, multiplier: 0.8 },
    { factor: 3.2, duration: 600, multiplier: 1.0 },
    { factor: 3.6, duration: 800, multiplier: 1.1 },
    { factor: 4.0, duration: 1100, multiplier: 1.3 },
    { factor: 4.8, duration: 1700, multiplier: 1.7 },
    { factor: 5.6, duration: 2400, multiplier: 2.0 }
]
];
相关问题