Código
// registramos los eventos de ratón
registerMouse();
// colocamos 4 zonas fijas que serán donde los iconos podrán estacionarse
registerFix("inicio1", 50, 10, 48, 48);
registerFix("inicio2", 150, 10, 48, 48);
registerFix("nodo1", 50, 100, 48, 48);
registerFix("nodo2", 150, 100, 48, 48);
// cremos un objeto que pueder moverse
// para ello creamos un objeto ObjectMovable pasándole como parámentro
// al constructor el identificador de la capa que queremos convertir
var o1 = new ObjectMovable("gnome");
// establecemos que la capa sólo se puede mover en el rectángulo formado por
// las posiciones del parámetro: (x1, y1) (x2, y2)
o1.setMoveRect(0, 0, 250, 200);
// establecemos que las 4 zonas fijas registradas antes sean zonas fijas
// de el objeto
o1.addFixRect("inicio1");
o1.addFixRect("inicio2");
o1.addFixRect("nodo1");
o1.addFixRect("nodo2");
// colocamos "pointer" como cursor cuando el objeto se mueva
o1.setCursor("pointer");
// establecemos como lugar de partida la zona fija "inicio1"
o1.setFixSelectedName("inicio1");
// por último registramos el objeto
registerObjectMovable(o1);
// hacemos lo mismo para la otra capa
var o1 = new ObjectMovable("gimp");
o1.setMoveRect(0, 0, 250, 200);
o1.addFixRect("inicio1");
o1.addFixRect("inicio2");
o1.addFixRect("nodo1");
o1.addFixRect("nodo2");
o1.setCursor("pointer");
o1.setFixSelectedName("inicio2");
registerObjectMovable(o1);