JavaScript - No sale la llamada a la funcion

 
Vista:
Imágen de perfil de Luis
Val: 1
Ha aumentado su posición en 120 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

No sale la llamada a la funcion

Publicado por Luis (1 intervención) el 23/04/2019 01:12:26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<!DOCTYPE html>
<html>
<head>
	<title>Animacion</title>
<script type="text/javascript">
	/*
	====Metodos para hacer animaciones sencillas====
	*/
	var y=300;
	var estado="bajando";
	var arriba=y;//para el limite de la altura
	var horizontal=0;//para que se mueva hacia el frente
	function comenzar() {
		var canvas=document.getElementById('canvas');
		var dibujo=canvas.getContext("2d");
 
		setInterval (animacion,50);//llama la fucion esta es la parte que no funciona
 
	}
 
	function animacion() {
		if (y<650 && estado=="bajando") {
		dibujo.clearRect(0,0,900,700);//limpia el area del canvas
		dibujo.beginPath();//comienza el dibujo
		dibujo.arc(500,y,40,0,Math.PI*2,false);//prepara un  circulo
		dibujo.fill();//manda a rellenarlo
		y+=50;
		horizontal+=2;
		}
 
		if (y==650) {
			arriba+=50;
			estado="subiendo";
		}
 
		if (y>=arriba && estado=="subiendo"){
			dibujo.clearRect(0,0,900,700);//limpia el area del canvas
			dibujo.beginPath();//comienza el dibujo
			dibujo.arc(500,y,40,0,Math.PI*2,false);//prepara un  circulo
			dibujo.fill();//manda a rellenarlo
			y-=50;
			horizontal+=2;
 
		}
 
		if (y==arriba) {
			estado="bajando";
		}
 
	}
 
 
	window.addEventListener("load",comenzar);
</script>
</head>
<body>
<canvas id="canvas" width="1200" height="900" style="border: 1px solid #FF0000">
	no soporta canvas
</canvas>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

No sale la llamada a la funcion

Publicado por joel (895 intervenciones) el 23/04/2019 10:47:38
Hola Luis, tu problema es que defines la variable dibujo con "var" dentro de la función comenzar(), por lo que la variable dibujo queda declarada solo dentro de la función comenzar()

Si quieres utilizar dibujo fuera de la función comenzar() tienes que quitarle el "var"... algo así:
1
2
3
4
5
6
function comenzar() {
	var canvas=document.getElementById('canvas');
	dibujo=canvas.getContext("2d");
 
	setInterval (animacion,50);//llama la fucion esta es la parte que no funciona
}

Al quitar el "var" se define la variable en la parte mas alta del SCOPE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar