2012-12-23 65 views
1

我想在一个画布上使用更多的Javascript文件,但我无法连接它们。例如,我想编写一个包含所有函数和使用它们的其他Javascript文件的Javascript文件。如何包含多个Javascript文件?

请给我一个指南,我该如何建立这种联系?

谢谢。

这是第一个JavaScript文件:

var canvas = null; 
var ctx = null; 

window.onload = function() { 
    canvas = document.getElementById('myCanvas'); 
    ctx = canvas.getContext('2d'); 

    line (100,100,300,300); 
} 

这是secnond文件:

function line (x1,y1,x2,y2) { 
    ctx.beginPath(); 
    ctx.moveTo(x1,y1); 
    ctx.lineTo(x2,y2); 
    ctx.stroke(); 
} 

,这是我的html文件:

<!DOCTYPE html> 

<html> 
<head> 
    <title>Tutorialok</title> 
    <script type="text/javascript" src="CanvasElement.js"></script> 
    <script type="text/javascript" src="line.js"></script> 
    <style> 
     #myCanvas { 
      border: 1px solid #9C9898; 
     } 
    </style> 
</head> 

<body> 
    <canvas id="myCanvas" width="800" height="600"> 
     Sorry your browser Does not support canvas element! 
    </canvas> 

</body> 
</html> 

第一个文件无法找到第二个文件功能。

+5

告诉我们你试过的东西。 “通过一个Canvas连接它们”是什么意思?使用来自其他文件的函数的文件当然是可能的,只需包含两个文件(并且既不用HTML5也不用canvas)。 – Bergi

回答

0

通过Objects使用命名空间。我不建议一个文件中存在所有函数的模式,但这是一个您可以使用的想法。您必须在file2.js可以执行任何操作之前加载file1.js。

// file1.js 
window.namespace = window.namespace || {}; 

window.namespace.fns = { 
    foo: function() {} 
}; 

// file2.js 
window.namespace.fns.foo(); 
0

jsFile 1

var f1 = function(){}; 
var f2 = function(){} 

jsFile2

var s1 = f1(); 
var s2 = f2(); 

使用此HTML页面上

<script src="path/jsFile1.js"></script> 
<script src="path/jsFile2.js"></script> 
0

如果你期待的功能,葫芦,我不不相信这会起作用因为每个脚本文件都是独立评估的。在加载CanvasElement.js时,切换脚本标记以便在行的范围内。

否则,全局名称空间在链接的脚本之间共享。

相关问题