我希望我的HTML代码永远运行JS代码,或者至少运行很长一段时间。我如何才能做到这一点呢?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<title>2D Sierpinski Gasket</title>
<script language ="JavaScript" src ="RandomCircle">
</script>
<script language ="JavaScript" src ="webgl-utils.js"></script>
<script language ="JavaScript" src ="InitShaders.js"></script>
<script language ="JavaScript" src ="MV.js"></script>
<script>
var mar = setInterval(myTimer, 1000);
</script>
<script language ="JavaScript" src ="RandomCircle.js"></script>
<script id="vertex-shader" type="x-shader/x-vertex">
attribute vec4 vPosition;
void
main()
{
gl_PointSize = 1.0;
gl_Position = vPosition;
}
</script>
<script id="fragment-shader" type="x-shader/x-fragment">
precision mediump float;
void
main()
{
gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
}
</script>
<body>
<canvas id="gl-canvas" width="512" height="512">
<!-- The following message is displayed if the browser doesn't support HTML5 -->
Sorry; your web browser does not support HTML5's canvas element
</canvas>
</body>
</html>正如您所看到的,我尝试使用var mar作为setInterval,但不幸的是我不太理解它。
这是Js。
var canvas;
var gl;
var x = Math.random();
var y = Math.random();
var center = vec2(x, y);
var points = [];
var numCirclePoints = 30;
var radius = 0.5;
window.onload = function init() {
var myFunction = function() {};
x = Math.random();
y = Math.random();
canvas = document.getElementById( "gl-canvas" );
gl = WebGLUtils.setupWebGL( canvas );
if ( !gl ) { alert( "WebGL isn't available" ); }
gl.viewport( 0, 0, canvas.width, canvas.height );
gl.clearColor( 1.0, 1.0, 1.0, 1.0 );
//
// Load shaders and initialize attribute buffers
//
var program = initShaders( gl, "vertex-shader", "fragment-shader" );
gl.useProgram( program );
points.push( center );
createCirclePoints( center, radius, numCirclePoints );
var vBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, vBuffer);
gl.bufferData(gl.ARRAY_BUFFER, flatten(points), gl.STATIC_DRAW);
var vPosition = gl.getAttribLocation(program, "vPosition");
gl.vertexAttribPointer(vPosition, 2, gl.FLOAT, false, 0, 0);
gl.enableVertexAttribArray(vPosition);
var myFunction = function() {
init();
};
render();
}
// Create the points of the circle
function createCirclePoints( cent, rad, k )
{
var dAngle = 2*Math.PI/k;
for( i=k; i>=0; i-- ) {
a = i*dAngle;
var p = vec2( rad*Math.sin(a) + cent[0], rad*Math.cos(a) + cent[1] );
points.push(p);
}
}
function render() {
gl.clear( gl.COLOR_BUFFER_BIT );
// Draw circle using Triangle Fan
gl.drawArrays( gl.TRIANGLE_FAN, 0, numCirclePoints+2 );
window.requestAnimFrame(render);
init();
}我只希望JS在HTML中重复自己,我该如何实现呢?
发布于 2016-01-22 06:46:25
正如您所看到的,我尝试使用
作为setInterval,但不幸的是我不太理解它。
你绝对可以使用这个。只需将3000替换为您希望代码运行的频率。
setInterval(function(){
// Your repeating code here
), 3000 };如果这不起作用,请检查您的控制台,并添加一些console.logs,以及解释脚本的作用,以帮助我们理解。
https://stackoverflow.com/questions/34935770
复制相似问题