Iniziando dalle cose semplici:
serve a svuotare il canvas nel caso ci fosse qualcosa sopra.codice:context.width = context.width;
Questi sono degli EventListener. A dire il vero li ho scoperti ieri pure io ma sono molto simili a quelli di ActionScript3.codice:context.canvas.addEventListener('mousedown' , function() { mouseDown = 1; },false ); context.canvas.addEventListener('mousemove' , getMousePosition ,false ); context.canvas.addEventListener('mouseup' , function() { mouseDown = 0; } ,false ); context.canvas.addEventListener('mouseleave' , function() { mouseDown = 0; } ,false );
Quello che fanno è richiamare una funzione al verificarsi di un determinato evento.
La sintassi è questa:
object.addEventListener (NomeEvento, function, useCapture);
NomeEvento è un identificativo per il tipo di evento che ti interessa (es: 'mousedown', 'click' etc)
Function è la funzione che viene richiamata al verificarsi dell'evento. Se non vengono specificati parametri viene passato l'evento.
useCapture è un valore Booleano che spacifica se l'evento debba essere catturato o no. Personalmente lo metto sempre a false![]()
Se avessi bisogno di chiamare una funzione passando l'evento più altri parametri usa:
object.addEventListener ('event', function (e) { NomeFunzione(e, par1, par2);}, false);
Probabilemente non è il modo migliore ma funziona
Non è quello... lo avevo pensato anch'io ma non c'entra. Comunque lo spostamento aumenta costantemente man mano che ci sia allontana dall'origine (0,0). Se scopri quella costante basta che fai:EDIT: non avevo capito in che senso "spostati" Questo succede perchè non ho regolato il rapporto tra le coordinate del mouse (che sono rispetto allo schermo) e quelle del quadrato da disegnare nel canvas (che sono rispetto al canvas stesso). Come detto prima il codice è solo di prova... una volta riuscito a farlo funzionare sarei passato ad ottimizzarlo.
Per trovare la costante fai un rapporto fra la X ipotetica e la X reale.codice:MouseX = MouseX * costante;
e lo stesso per la Y. Dovrebbe funzionare![]()


Rispondi quotando