Bene! Non metto qui il codice per esteso, ma cerco di aggiustarmelo in modo tale da incapsularmelo un po'.
Sembra che finalmente
ci sono riuscito!, a fare un codice per la gestione delle collisioni.
Dopo un paio di bugs, uno che mi ha fatto sputare il sangue e un altro che ho capito subito e risolto con poca fatica,
sembra che adesso sia perfetto.
Gestiamo ora il modo di chiamare questo modulo, che si chiama
dragdrop.js.
Quando volevo usare quel
dragdrop.js che avevo costruito basandomi sul tutorial per il trascinamento trovato in rete, l'unica cosa fondamentale era l'operazione
window.onload=main;
function main(){
document.onmousedown=OnMouseDown;
}
Ossia innescare la funzione
main() al caricamento della finestra e quindi, nel contesto della funzione
main() assimilare l'evento mousedown alla funzione OnMouseDown.
Ora, invece, sulla pagina che usa il modulo
dragdrop.js il codice è un po' più complesso perchè deve definire la matrice di ostacoli:
var ostacoli;
window.onload=main;
function main(){
ostacoli=document.getElementsByTagName("div");
document.onmousedown=OnMouseDown;
}
In questo caso ho impostato come matrice l'insieme degli elemento
div, ma posso impostare qualunque matrice mediante l'uso dell'oggetto
Array.
Quindi, riepilogando, le uniche condizioni per usare il modulo
dragdrop.js sono:
- associare all'evento onmousedown la funzione OnMouseDown;
- impostare la matrice di ostacoli.
A questo punto la prossima mossa è creare matrici diverse da questa, immettendo elementi selezionati in essa e non tutti i DIV in generale.