body onload =“”无法找到功能

时间:2011-02-25 13:00:25

标签: javascript webgl

我正在尝试使用philogl库,当我写作时,

<!DOCTYPE html>

<html>
<head>
    <title>PGL2</title>
    <script type="text/javascript" src="PhiloGL.js"></script>
    <script type="text/javascript">
    function webGLStart(){
        alert('I m alive');
    }
</script>
</head>

<body onload="webGLStart();">
<canvas id="c" style="width:500px; height:500px;"></canvas>


</body>
</html>

一切正常,但如果我在其中写一些philogl,

<!DOCTYPE html>

<html>
<head>
    <title>PGL2</title>
    <script type="text/javascript" src="PhiloGL.js"></script>
    <script type="text/javascript">
    function webGLStart(){
        var triangle = new PhiloGL.O3D.Model({
            vertices: [[0,1,0],[-1,-1,0],[1,-1,0]],
            colors: [[1,0,0,1],[0,1,0,1],[0,0,1,1]]
            });
        var square = new PhiloGL.O3D.Model({
            vertices: [[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0]],
            colors: [[0.5,0.5,1,1],[0.5,0.5,1,1]],[0.5,0.5,1,1]
            });
    }
</script>
</head>

<body onload="webGLStart();">
<canvas id="c" style="width:500px; height:500px;"></canvas>


</body>
</html>

chrome和firefox给我一个错误,说明没有定义webGLStart()。 我的代码出了什么问题?

2 个答案:

答案 0 :(得分:8)

这一行:

        colors: [[0.5,0.5,1,1],[0.5,0.5,1,1]],[0.5,0.5,1,1]

在语法上是不正确的:结束“]”是在错误的地方。因此,功能定义“失败”,可以说,功能并不存在。

我确实刚刚醒来,所以我不确定我能发现什么问题。

答案 1 :(得分:0)

使用此“philogl”的方式必定存在错误,导致无法完全解释该函数。特别是,方括号的语法错误。然后该功能仍未定义。

将来你可以打开Firebug中的错误控制台(或者你喜欢的浏览器的等效控制台),看看你做错了什么。

此外,在脚本中更喜欢document.onload = function() { ... },而不是在HTML标记中嵌入脚本。